25

コマンドラインを実行して次のように動作するカスタム アクションを取得しました。

<CustomAction Id="OurAction" 
              FileKey="OurInstalledExe.exe"
              ExeCommand="our command line args" 
              Execute="deferred" 
              Return="check" />

問題は、コマンドの実行時にユーザーにコンソール ポップアップが表示されることです。

コマンド ラインには UAC の昇格が必要ですが、ユーザーの操作は必要ありません。セットアップと共にファイルもインストールします。カスタム アクションは After="InstallFiles" を実行します。

ユーザーにコンソールが表示されないようにするにはどうすればよいでしょうか?

4

4 に答える 4

7

UAC 昇格が必要な場合は、それが遅延実行 CA であることを確認する必要があることに注意してください。コマンドライン引数が追加されたマニュアルの例を次に示します。

<CustomAction Id="QtExecDeferredExampleWithProperty_Cmd" Property="QtExecDeferredExampleWithProperty"
              Value="&quot;[#MyExecutable.exe]&quot; /arguments" Execute="immediate"/>
<CustomAction Id="QtExecDeferredExampleWithProperty" BinaryKey="WixCA" DllEntry="CAQuietExec"
              Execute="deferred" Return="check" Impersonate="no"/>
.
.
.
<InstallExecuteSequence>
    <Custom Action="QtExecDeferredExampleWithProperty_Cmd" After="CostFinalize"/>
    <Custom Action="QtExecDeferredExampleWithProperty" After="TheActionYouWantItAfter"/>
</InstallExecuteSequence>
于 2010-03-03T23:44:59.923 に答える
2

EXE ファイルのソース コードを持っている場合は、これが実行できます。Console Applicationではなく、EXE プロジェクトをWin32 Applicationプロジェクトにします。

EXE ファイルのソース コードを変更できない場合は、次の方法で変更できます。

  1. CustomAction DLL の作成
  2. コンソール ウィンドウを非表示にして、プロセスを実行するために (WiX から) DLL で CustomAction を呼び出します。
于 2010-03-03T16:37:00.843 に答える
0

cmd.exeに2番目のコマンド「exit」を追加するだけです

ExeCommand="[SystemFolder]cmd.exe /C start MyExe.exe &amp; exit"

願っています、それはあなたを助けます

于 2012-07-04T20:05:18.027 に答える