1

古いゲーム (Westwood Monopoly CD-ROM) を持っていますが、これは 16 ビット インストーラしかないため、Windows 7 x64 では実行できません。これを回避するために、Inno Setup を使用して新しいインストーラーを作成することにしました。ゲーム自体は 32 ビットですが、LFN に対応しておらず、Vista/7 で動作しますが、Inno Setup でビルドしたインストーラーが Windows 95 互換性をチェックした状態で実行されていないと、ゲームがクラッシュします。

互換モードをオンにして生成されたフォルダーと、互換性設定をチェックせずに生成されたフォルダーの間に、ファイルまたは属性の違いはありません。ただし、ゲームは互換モードでインストールされたフォルダーでのみ実行されます。ゲームの exe (Monopoly.exe) 自体は、互換モード オプションを有効にすることはできません。または、コンピューターの AI のいずれかを保存、読み込み、または選択しようとすると、ゲームが終了します。プレーヤー ファイル。インストーラーに互換モードを設定せずに作成したフォルダ内のMonopoly.exeで95互換モードをオンにすると、ゲームは読み込まれますが、上記の理由でプレイできなくなります。

私の推測では、Windows 95 の設定では短いファイル名が強制的に作成されますが、それがないと、短いファイル名の情報が存在しないため、ゲームはそのファイルを見つけることができません。検出された Windows のバージョンに基づいて別の exe をコピーできるようにする必要があるため、インストーラーに互換モードを設定することは理想的な解決策ではありません (Aero によって画面の一部が切り取られるため、16 進数で編集された exe を使用します。より大きなデフォルト サイズ)。

だから私の質問はこれです:Innoセットアップにコピー時に短いファイル名情報を強制的に作成させる方法はありますか、それとも終了後にコマンドでそれを追加する方法はありますか(つまり、ゲームができるように壊れたフォルダを修復します)そのファイルを見つけます)?

4

1 に答える 1

1

私の知る限り、問題は、新しいバージョンの Windows インストーラーと Windows 自体が短い名前の使用をサポートしていないことです。そのプロパティは段階的に使用されなくなり、(AFIK) Vista の時点では完全に使用されていません。最近のほとんどのインストーラー テクノロジでは、それらを含めようとするとエラーが発生します。DosBoxを見てみましたか?これにより、特別なインストーラーを必要とせずに実行できる場合もあります。

于 2010-10-21T14:16:59.627 に答える