外部アプリケーションが終了コード5を返した場合、どういうわけか強制的に再起動できますか?
[Run]
Filename: {app}\e.exe; Parameters: Z; Description: {cm:ALaunchProgram,{#ti}};
RUNセクションでそれが不可能な場合、実行可能ファイルがポストフェーズ中に実行されるように、ShellExecをどこで呼び出すことができますか。
外部アプリケーションが終了コード5を返した場合、どういうわけか強制的に再起動できますか?
[Run]
Filename: {app}\e.exe; Parameters: Z; Description: {cm:ALaunchProgram,{#ti}};
RUNセクションでそれが不可能な場合、実行可能ファイルがポストフェーズ中に実行されるように、ShellExecをどこで呼び出すことができますか。
[Run]
実行されたファイルが、再起動が必要であるとInnoが自動検出できる処理(再起動時にファイルを置換または削除するようにスケジュールするなど)を行わない限り、エントリから再起動をトリガーする方法はありません。RestartIfNeededByRun
これは、デフォルトで。に設定されている設定を介して制御されyes
ます。
戻り値を取得してそれを使って何か面白いことをしたい場合は、を使用する必要があります[Code]
。インストール後に実行する必要がある場合は、推奨される場所は次のとおりですCurStepChanged(ssPostInstall)
(これは実際には[Run]
エントリが通常実行した後に発生します)。
この時点Exec
で、プログラムを実行して終了コードを確認し、オプションで、再起動するかどうかを示すグローバル変数を設定できます。その後、その値をNeedRestart
イベント関数で使用できます。
ただし、このパスをたどる前に、実行しようとしているものが実際に何らかの前提条件のコンポーネントである場合は、PrepareToInstall
代わりにそれをインストールすることを強く検討する必要があります。この例は、前提条件のインストールとメインアプリケーションのインストールの間に再起動をトリガーする例を含め、Innoに含まれています。