0

私は Inno セットアップを使用してゲームの作成とインストーラーを作成しています。ユーザーにプロンプ​​トを表示し、DirectX9 をインストールするかどうかを尋ねて (サブフォルダーに完全なインストールの directx ファイルが既にあります)、ユーザーが言う場合はそれをインストールします。はいまたはいいえ...これを行う方法がわからず、プログラミングの知識が限られています。助けてください!

4

2 に答える 2

3

このコードを使用して、質問と [はい/いいえ] ボタンを含むメッセージ ボックスを表示します。

  // Ask the user a Yes/No question
  if MsgBox('Are you sure?', mbConfirmation, MB_YESNO) = IDYES then
  begin
     // User clicked Yes
     // Install the DirectX now... (see below)
  end;

そして、DXSETUP.exeを実行(起動)するこのコード

var
  ResultCode: Integer;

  // Launch DXSETUP and wait for it to terminate
  Exec('DXSETUP.exe', '', '', SW_SHOW, ewWaitUntilTerminated, ResultCode);

DirectX ファイルをインストーラーにパックし、{tmp} ディレクトリに抽出する必要があると思います。または、CD/DVD から実行することもできます (例のように)。

高度な DXSETUP については、この質問を参照してください: Inno-setup から再配布可能な DirectX をインストールする方法は?

DX のバージョンを検出する必要がある場合は、http://www.vincenzo.net/isxkb/index.php?title=DirectX_-_How_to_detect_DirectX_version を確認してください。

于 2012-08-20T05:03:48.200 に答える
1

エントリを使用して、[Tasks]DX をインストール/アップグレードするかどうかを尋ねるウィザード ページの 1 つにチェックボックスを表示できます (デフォルトでチェックを入れるかどうかを選択できます)。

実際のインストールでは、最も簡単なオプションは、作成したエントリにリンクされたパラメータを持つ[Run]エントリを使用することです。ただし、これはゲームの後にインストールされるため、発生する可能性のあるエラーをキャッチできないことに注意してください. (ただし、これは通常、この種の問題ではありません。)Tasks:[Tasks]

もう 1 つのオプションは、でPrepareToInstallイベント関数を使用すること[Code]です。このためには、 と を使用する必要がありExtractTemporaryFileますExec。これにより、ゲームの前にインストールされ、終了コードをチェックしてエラーを処理し、必要に応じて再起動要求を行うことができます。詳細については、Inno に含まれているサンプル スクリプトを参照してください。ただし、これはおそらく DX インストールに必要なよりも複雑です。

また、DX の Web インストーラーとフル インストーラーのどちらをバンドルするかを決定する必要があります。前者はサイズが小さいですが、インストール時にインターネット アクセスが必要です。後者の場合、インストーラーは大きくなりますが、インターネット アクセスは必要ありません。DVD からインストールする場合は、後者が最適なオプションです (その場合{src}は、バンドルする代わりにDVD から直接実行できます[Files])。

于 2012-08-20T20:19:36.827 に答える