Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/wix/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Process 如何从WiX终止进程_Process_Wix_Kill - Fatal编程技术网

Process 如何从WiX终止进程

Process 如何从WiX终止进程,process,wix,kill,Process,Wix,Kill,我正在使用Wix开发一个安装程序,需要在安装过程中悄悄地终止进程(而不是应用程序),这样用户就不会收到一个弹出窗口,要求终止进程或等待并重新启动。我见过杀死应用程序而不是进程的解决方案。经过深入研究,我找到了这个使用WixUtil扩展安静执行自定义操作的解决方案: ... 如果我了解您的需要,我已经使用了元素来完成此操作。我杀死的进程在任务管理器中不显示为应用程序。不过,这取决于您谈论的是什么进程类。是否有可能使它适用于使用管理员权限运行的进程?当前,如果我在管理员帐户上运行的进程导致qtex

我正在使用Wix开发一个安装程序,需要在安装过程中悄悄地终止进程(而不是应用程序),这样用户就不会收到一个弹出窗口,要求终止进程或等待并重新启动。我见过杀死应用程序而不是进程的解决方案。

经过深入研究,我找到了这个使用WixUtil扩展安静执行自定义操作的解决方案:


...

如果我了解您的需要,我已经使用了元素来完成此操作。我杀死的进程在任务管理器中不显示为应用程序。不过,这取决于您谈论的是什么进程类。

是否有可能使它适用于使用管理员权限运行的进程?当前,如果我在管理员帐户上运行的进程导致qtexec没有足够的权限终止该进程,则此操作将不起作用。请小心,taskkill在windows的家庭版本中不可用。CAQuietExec将在4.0中不可用。链接上有相同的替换。嗨@patrickbadley你是怎么解决的?因为我正在做和标记答案相同的事情,但它对我不起作用。我用的是Win10thanks@ElamirOhana这是几年前的事了,从那以后我就再也没有和WiX合作过了,不过在关于新版WiX的选定答案(对我来说很有用)上有一条评论,也许可以帮你弄清楚:“从文档来看,CAQuietExec将在4.0中不可用。链接上有相当的替代品。–will”
<InstallExecuteSequence>
  <Custom Action='MyProcess.TaskKill' Before='InstallValidate'/>
</InstallExecuteSequence>

<Property Id="QtExecCmdLine" 
          Value='"[WindowsFolder]\System32\taskkill.exe" /F /IM MyProcess.exe'/>
<CustomAction Id="MyProcess.TaskKill" 
              BinaryKey="WixCA" 
              DllEntry="CAQuietExec" 
              Execute="immediate" 
              Return="ignore"/>

<Directory Id="TARGETDIR" Name="SourceDir">
  <Directory Id="WindowsFolder" Name="WINDOWS"/>
    ...