Silence, Please!

The standard custom action to start an executable might not be the best solution if the program to be launched happens to be a console application rather than something with the usual graphical user interface. In these cases, we might want to avoid the command line console windows to flash up for a moment.

WixUtilExtension has a special custom action called CAQuietExec just for these occasions. It expects to find the command line to be run in a predetermined property called QtExecCmdLine. The execution can be either immediate or deferred.

<Property Id="QtExecCmdLine" Value="something.exe"/>
<CustomAction Id="SilentLaunch" BinaryKey="WixCA" DllEntry="CAQuietExec" Execute="immediate" Return="check" />

<InstallExecuteSequence>
  <Custom Action="SilentLaunch" After="..." />
</InstallExecuteSequence>

To run 64-bit executables, use the CAQuietExec64 custom action and QtExec64CmdLine property instead.

To build, we have to link against the standard library:

candle.exe Sample.wxs
light.exe -ext WixUtilExtension Sample.wixobj