2012-07-11 19 views
15

Wix kullanarak bir yükleyici geliştiriyorum ve yükleme sırasında bir işlemi (uygulamayı değil) sessizce öldürmem gerekiyor, böylece kullanıcı işlemi durdurmayı veya bekleyip yeniden başlatmayı isteyen bir pencere açmıyor. Bir uygulamayı öldürmek için bir çözüm buldum ama bir süreç değil. Ben ihtiyaçlarınızı anlamak, bunu yapmak için CloseApplication elemanı kullandıkBir işlem nasıl kaldırılır WiX

<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"/> 
    ... 

cevap

29

Ben WixUtilExtension Sessiz Yürütme Özel eylem http://wix.sourceforge.net/manual-wix3/qtexec.htm kullanan bu çözüm buldu. Öldürdüğüm işlemler Görev Yöneticisi'nde uygulama olarak gösterilmiyor. Bununla birlikte, hangi süreç sınıfından bahsettiğine bağlı.

+0

bu harika çalışıyor teşekkürler – zulucoda

+0

OMG Yeterince teşekkür edemem !!! –

+0

Bu, yönetici haklarıyla çalışan proaktifler için çalışmanın bir yararı var mı? Şu anda bu bir yönetici hesabında çalışan bir işlem qtexec işlemek için yeterli haklara sahip değilse işe yaramaz. – RandomDude

2

: etrafında kazma bazı sonra