7

インストールの終了コードを設定したいのですが、こうすることで、インストールが中止された理由がわかります。InnoSetupを使用しています。

4

2 に答える 2

13

Inno Setup ヘルプ ドキュメントから (記事「Setup Exit Codes」から):

Inno Setup 3.0.3 以降、セットアップ プログラムは次の終了コードのいずれかを返す場合があります。

0セットアップは完了まで正常に実行されました。

1セットアップの初期化に失敗しました。

2ユーザーは、実際のインストールが開始される前にウィザードで [キャンセル] をクリックしたか、最初の [これによりインストールされます...] メッセージ ボックスで [いいえ] を選択しました。

3次のインストール フェーズに移行する準備中に致命的なエラーが発生しました (たとえば、インストール前のウィザード ページの表示から実際のインストール プロセスまで)。これは、メモリ不足や Windows リソース不足など、最も異常な状況以外では決して発生しません。

4実際のインストール プロセス中に致命的なエラーが発生しました。

注: Abort-Retry-Ignore ボックスが表示される原因となるエラーは、致命的なエラーではありません。ユーザーがこのようなメッセージ ボックスで [中止] を選択すると、終了コード5が返されます。

5ユーザーが実際のインストール プロセス中に [キャンセル] をクリックしたか、[中止-再試行-無視] ボックスで [中止] を選択しました。

6セットアップ プロセスがデバッガーによって強制的に終了されました (IDE で実行 | 終了が使用されました)。

終了コードが であることを確認することで、セットアップが正常に実行されたかどうかを簡単に確認できます0。さらに:

ゼロ以外の終了コードは、セットアップが完了まで実行されなかったことを示します。

より具体的に質問に答えるには、終了コード2または5.

Inno が を返すときにカスタムの終了コードを返したい場合0は、次のイベント関数を定義できます。

function GetCustomSetupExitCode: Integer;

ヘルプ ドキュメントから (記事「Pascal Scripting: E​​vent Functions」から):

function GetCustomSetupExitCode: Integer;

カスタム終了コードを返すようにセットアップに指示するには、0 以外の数値を返します。この関数は、セットアップが完了まで正常に実行され、終了コードが である場合にのみ呼び出されます0

于 2010-01-06T13:36:13.360 に答える
8

使用する:

[Code]
procedure ExitProcess(exitCode:integer);
  external 'ExitProcess@kernel32.dll stdcall';

procedure SomeEventHere();
begin
  if someerror then begin
    ExitProcess(9); //Your custom exit code
  end;
end;
于 2011-08-11T08:50:17.557 に答える