2012-07-11 24 views
15

से एक प्रक्रिया को कैसे मारें मैं विक्स का उपयोग करके एक इंस्टॉलर विकसित कर रहा हूं और इंस्टॉलेशन के दौरान चुपचाप प्रक्रिया (आवेदन नहीं) को मारने की आवश्यकता है ताकि उपयोगकर्ता को प्रक्रिया को मारने या प्रतीक्षा करने और पुनरारंभ करने के लिए पॉप अप नहीं मिलता है। मैंने एक आवेदन को मारने के लिए समाधान देखा है लेकिन एक प्रक्रिया नहीं है।वाईएक्स

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

उत्तर

29

कुछ चारों ओर से खुदाई करने के बाद मैं इस समाधान जो WixUtilExtension शांत निष्पादन कस्टम क्रिया http://wix.sourceforge.net/manual-wix3/qtexec.htm का उपयोग करता पाया। मैंने जो प्रक्रियाएं मारे गए हैं वे कार्य प्रबंधक में अनुप्रयोगों के रूप में नहीं दिखते हैं। इस बात पर निर्भर करता है कि आप किस प्रक्रिया वर्ग के बारे में बात कर रहे हैं, हालांकि।

+0

धन्यवाद यह पूरी तरह से काम करता है – zulucoda

+0

ओएमजी मैं आपको धन्यवाद नहीं दे सकता !!! –

+0

क्या यह अधिकारों के लिए काम कर रहे हैं जो प्रशासन अधिकारों के साथ चल रहे हैं? वर्तमान में यह काम नहीं करेगा अगर मैं एक व्यवस्थापक खाते में चल रहा एक प्रक्रिया का कारण qtexec प्रक्रिया को मारने के लिए पर्याप्त अधिकार नहीं है। – RandomDude

2

मैं CloseApplication तत्व का इस्तेमाल किया है ऐसा करने के लिए, अगर मैं आपकी आवश्यकताओं को समझते: