मैं C # .NET या C ++ में उनके .exe फ़ाइल नाम की खोज करके कुछ सक्रिय प्रक्रियाओं को कैसे मार सकता हूं?
मैं C # .NET या C ++ में उनके .exe फ़ाइल नाम की खोज करके कुछ सक्रिय प्रक्रियाओं को कैसे मार सकता हूं?
जवाबों:
शीघ्र जवाब:
foreach (var process in Process.GetProcessesByName("whatever"))
{
process.Kill();
}
(प्रक्रिया नाम से छुट्टी। exe)
Contains("Spotify"))
सभी उदाहरणों को मारता है Spotify
। मैं एक विशेष उदाहरण को मारना चाहता हूं Spotify
।
मेरा समाधान सभी प्रक्रियाओं को सूचीबद्ध करने के लिए Process.GetProcess () का उपयोग करना है।
जिन प्रक्रियाओं को मैं चाहता हूं, उन्हें फ़िल्टर करके मैं उन्हें रोकने के लिए Process.Kill () विधि चला सकता हूं:
var chromeDriverProcesses = Process.GetProcesses().
Where(pr => pr.ProcessName == "chromedriver"); // without '.exe'
foreach (var process in chromeDriverProcesses)
{
process.Kill();
}
अपडेट करें:
मामले में यदि ( Async Enumerables ) async
से कुछ उपयोगी हालिया तरीकों के साथ दृष्टिकोण का उपयोग करना चाहते हैं , तो यह जांचें:C# 8
const string processName = "chromedriver"; // without '.exe'
await Process.GetProcesses()
.Where(pr => pr.ProcessName == processName)
.ToAsyncEnumerable()
.ForEachAsync(p => p.Kill());
नोट:
async
तरीकों का उपयोग करने का मतलब यह नहीं है कि कोड हमेशा तेजी से चलेगा, लेकिन कम से कम यह सीपीयू समय बर्बाद नहीं करेगा और ऑपरेशन करते समय अग्रभूमि के धागे को लटकने से रोकेगा। किसी भी मामले में, आपको यह सोचने की ज़रूरत है कि आपको कौन सा संस्करण चाहिए।
आप Process.GetProcesses()
वर्तमान में चल रही प्रक्रियाओं को प्राप्त करने के लिए उपयोग कर सकते हैं , फिर Process.Kill()
एक प्रक्रिया को मारने के लिए।
आप एमएस वर्ड के एक विशिष्ट उदाहरण को मार सकते हैं।
foreach (var process in Process.GetProcessesByName("WINWORD"))
{
// Temp is a document which you need to kill.
if (process.MainWindowTitle.Contains("Temp"))
process.Kill();
}
public void EndTask(string taskname)
{
string processName = taskname.Replace(".exe", "");
foreach (Process process in Process.GetProcessesByName(processName))
{
process.Kill();
}
}
//EndTask("notepad");
सारांश : कोई भी बात नहीं है अगर नाम में .exe है, तो प्रक्रिया समाप्त हो जाएगी। आपको "प्रक्रिया नाम से .exe बंद" करने की आवश्यकता नहीं है, यह 100% काम करता है।
.Replace(".exe", "")
शीर्ष मतदान के उत्तर पर एक सरल बहुत कम