问题描述
我们已经获得了一个自定义操作,该操作可运行如下命令行:
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.
命令行需要UAC提升,但不需要任何用户交互。我们还使用安装程序安装文件,自定义操作在After = InstallFiles之后运行。
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?
推荐答案
请注意,如果确实需要UAC提升,则需要确保它是推迟执行的CA。以下是手册中添加命令行参数的示例。
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=""[#MyExecutable.exe]" /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>
这篇关于WiX-CustomAction ExeCommand-隐藏控制台的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!