Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

WiX - CustomAction ExeCommand - Hide Console

Tags:

We've gotten a custom action that runs command-line to work as such:

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

The problem is, the user sees a console popup when the command runs.

The command line requires UAC elevation, but should not require any user interaction. We also install the file with the setup, the custom action runs After="InstallFiles".

How do we prevent the user from seeing the console?

like image 534
jonathanpeppers Avatar asked Mar 03 '10 16:03

jonathanpeppers


1 Answers

Note that if you do require UAC elevation, then you need to ensure that it's a deferred execution CA. Here's the example from the manual with command line arguments added.

<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> 
like image 77
saschabeaumont Avatar answered Sep 22 '22 10:09

saschabeaumont