Come posso eliminare alcuni processi attivi cercando i nomi dei file .exe in C# .NET o C++?Uccidere alcuni processi con il nome file .exe
risposta
Risposta rapida:
foreach (var process in Process.GetProcessesByName("whatever"))
{
process.Kill();
}
(lasciare fuori .exe dal nome del processo)
Grazie mille .. –
cosa si dovrebbe fare se il codice precedente restituisce Eccezione (un processo a 32 bit non può accedere ai moduli di un processo a 64 bit)? – Manish
Lasciare ".exe". Da MSDN: "Il nome del processo è un nome descrittivo per il processo, come Outlook, che non include l'estensione .exe o il percorso" – slater
È possibile utilizzare Process.GetProcesses()
per ottenere i processi attualmente in esecuzione, quindi Process.Kill()
per terminare un processo.
Process.GetProcessesByName semplificherebbe questo. – ConsultUtah
Grazie mille .. –
Cosa dovrebbe fare se sopra il codice restituisce Eccezione (un processo a 32 bit non può accedere ai moduli di un processo a 64 bit)? – Manish
La mia soluzione è:
var chromeDriverProcesses = Process.GetProcesses().
Where(pr => pr.ProcessName == "chromedriver");
foreach (var process in chromeDriverProcesses)
{
process.Kill();
}
potresti usare Contiene invece di uguale –
Divertente coincidenza è, stavo cercando in questa discussione una soluzione per uccidere il chromedriver. Deve essere un problema comune. – 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");
Sommario: Non importa se il nome contiene .exe, il processo terminerà. Non è necessario "lasciare fuori .exe dal nome del processo", Funziona al 100%.
un semplice '.Replace (". Exe "," ")' in alto la risposta votata lo farebbe con un codice molto meno contorto e non necessario – AndrewK
L'idea è di vedere il metodo con o senza .exe così gente può vedere diversi modi di gestirlo ... Non è pensato per copiare e incollare .... – user7993881
Se è necessario il processo di eliminazione per nome parziale, consultare http://stackoverflow.com/questions/14632162/c-sharp-killing-a-process-by-a-part-of-its-name?rq=1 . –