Jak mogę zabić niektóre aktywne procesy, wyszukując ich nazwy plików .exe w C# .NET lub C++?Zabij niektóre procesy według nazwy pliku .exe
Odpowiedz
Szybka Odpowiedź:
foreach (var process in Process.GetProcessesByName("whatever"))
{
process.Kill();
}
(opuść .exe z nazwą procesu)
Niż tyle .. –
co należy zrobić, jeśli powyższy wyjątek kod zwrotny (32 bitowe procesów nie może uzyskać dostępu do modułów procesu 64 bit)? – Manish
Zostaw ".exe". Od MSDN: „Nazwa proces jest przyjazny nazwa procesu, takich jak Outlook, który nie zawiera rozszerzenie .exe lub ścieżkę” – slater
Możesz użyć Process.GetProcesses()
, aby uzyskać aktualnie uruchomione procesy, a następnie Process.Kill()
, aby zabić proces.
Process.GetProcessesByName uprości to. – ConsultUtah
Niż tak dużo .. –
co należy zrobić, jeśli powyższy kod zwraca wyjątek (procesy 32-bitowe nie mogą uzyskać dostępu do modułów procesu 64-bitowego)? – Manish
Moje rozwiązanie to:
var chromeDriverProcesses = Process.GetProcesses().
Where(pr => pr.ProcessName == "chromedriver");
foreach (var process in chromeDriverProcesses)
{
process.Kill();
}
można użyć Zawiera zamiast równego –
Zabawny zbieg okoliczności jest, szukałem w tym wątku rozwiązania problemu zabicia chromedriver. Musi to być typowy problem. – kerl
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");
Podsumowanie: Bez względu na to, czy nazwa zawiera .exe, proces się zakończy. Nie musisz "zostawiać .exe z nazwy procesu", działa on w 100%.
prosty '.replace („ exe”,«»)' na górze głosowało odpowiedź byłoby to zrobić z kodem dużo mniej zawiłe i niepotrzebnego – AndrewK
Cała idea jest widzieć metodę z lub bez .exe tak ludzi widzę wiele sposobów na jego obsługę ... Nie jest to przeznaczone do kopiowania i wklejania .... – user7993881
Jeśli potrzebujesz zabić proces według częściowej nazwy, zobacz http://stackoverflow.com/questions/14632162/c-sharp-killing-a-process-by-a-part-of-its-name?rq=1 . –