2010-07-27 14 views
75

द्वारा कुछ प्रक्रियाओं को मारें मैं सी # .NET या C++ में अपने .exe फ़ाइल नामों को खोजकर कुछ सक्रिय प्रक्रियाओं को कैसे मार सकता हूं?.exe फ़ाइल नाम

+1

यदि आपको आंशिक नाम से मारने की प्रक्रिया की आवश्यकता है तो http://stackoverflow.com/questions/14632162/c-sharp-killing-a-process-by-a-part-of-its-name?rq=1 देखें । –

उत्तर

153

त्वरित उत्तर:

foreach (var process in Process.GetProcessesByName("whatever")) 
{ 
    process.Kill(); 
} 

(प्रक्रिया नाम से .exe को बंद रखना होगा)

+2

Thanx इतना .. –

+2

उपरोक्त कोड रिटर्न अपवाद (32 बिट प्रक्रिया 64 बिट प्रक्रिया के मॉड्यूल तक नहीं पहुंच सकती है) क्या करना चाहिए? – Manish

+32

".exe" छोड़ दें। एमएसडीएन से: "प्रक्रिया का नाम प्रक्रिया के लिए एक दोस्ताना नाम है, जैसे कि Outlook, जिसमें .exe एक्सटेंशन या पथ शामिल नहीं है" – slater

13

वर्तमान में चल रही प्रक्रियाओं को प्राप्त करने के लिए आप Process.GetProcesses() का उपयोग कर सकते हैं, फिर Process.Kill() प्रक्रिया को मारने के लिए।

+6

प्रक्रिया। GetProcessesByName इसे सरल बना देगा। – ConsultUtah

+0

Thanx इतना .. –

+0

उपरोक्त कोड रिटर्न अपवाद (32 बिट प्रक्रिया 64 बिट प्रक्रिया के मॉड्यूल तक नहीं पहुंच सकती है) क्या करना चाहिए? – Manish

22

मेरे समाधान है:

var chromeDriverProcesses = Process.GetProcesses(). 
           Where(pr => pr.ProcessName == "chromedriver"); 

foreach (var process in chromeDriverProcesses) 
{ 
    process.Kill(); 
} 
+0

आप बराबर –

+2

मजेदार संयोग के बजाय कंटेनर का उपयोग कर सकते हैं है, मैं क्रोमरेड्रिवर को मारने के समाधान के लिए इस थ्रेड में देख रहा था। एक आम मुद्दा होना चाहिए। – kerl

-2
public void EndTask(string taskname) 
    { 
     string processName = taskname; 
     string fixstring = taskname.Replace(".exe", ""); 

     if (taskname.Contains(".exe")) 
     { 
      foreach (Process process in Process.GetProcessesByName(fixstring)) 
      { 
       process.Kill(); 
      } 
     } 
     else if (!taskname.Contains(".exe")) 
     { 
      foreach (Process process in Process.GetProcessesByName(processName)) 
      { 
       process.Kill(); 
      } 
     } 
    } 

//EndTask("notepad"); 

सारांश: कोई फर्क नहीं पड़ता नाम शामिल है .exe, प्रक्रिया समाप्त हो जाएगी। आपको "प्रक्रिया नाम से .exe छोड़ने" की आवश्यकता नहीं है, यह 100% काम करता है।

+0

शीर्ष मतदान वाले उत्तर पर एक सरल 'रेप्लेस ("। Exe", "")' यह बहुत कम संकुचित और अनावश्यक कोड – AndrewK

+0

के साथ ऐसा करेगा, इसका पूरा विचार है .exe के साथ या बिना विधि को देखना इसे संभालने के कई तरीके देख सकते हैं ... यह कॉपी और पेस्ट के लिए नहीं है .... – user7993881

संबंधित मुद्दे