0

ソフトウェア展開用のインストール ラッパーを作成していますが、msiexec を使用して MSI を起動するときにエラー コードを取得する際に問題が発生します。私のインストール文字列の例として、次を取り上げてください。

Run(msiexec /i "' & @WorkingDir & '\install_flash_player_11_active_x.msi" TRANSFORMS="' & @WorkingDir & '\AdobeFlash_ActiveX.mst" /qn /norestart', @WorkingDir, @SW_HIDE)

AutoIT 内では、インストールでエラーが発生した場合、Run は @error をゼロ以外に設定する必要があります。ただし、インストールが失敗した場合でも @error が 0 に設定されているため、ソースはこれを成功と見なしていることに気付きました。これらのリターン コードは、Msiexec によって起動されたインストールではなく、Msiexec 自体が正常に起動されたことに基づいていると私は考えています。その結果、失敗したインストールについて正しく報告することがほとんど不可能になりました。

誰かがこれに対する潜在的な解決策を持っているなら、それは大歓迎です。

4

1 に答える 1

2

fromの@error値はRun、プログラムが正しく開始されたかどうかのみを示します。その後、プログラムがバックグラウンドで開始され、スクリプトの実行が続行されます。

マウスやキーボードの自動化など、msi のインストール中に処理を行う必要がない場合は、を使用RunWaitすると、プログラムから終了コードが返されます。

または、Run を使用する必要がある場合は、バックグラウンド処理を行った後ProcessWaitClose、 でプログラムの終了コードを返す を使用します@extended

于 2013-09-19T12:11:36.130 に答える