2010-07-27 9 views

risposta

153

Risposta rapida:

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

(lasciare fuori .exe dal nome del processo)

+2

Grazie mille .. –

+2

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

+32

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

13

È possibile utilizzare Process.GetProcesses() per ottenere i processi attualmente in esecuzione, quindi Process.Kill() per terminare un processo.

+6

Process.GetProcessesByName semplificherebbe questo. – ConsultUtah

+0

Grazie mille .. –

+0

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

22

La mia soluzione è:

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

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

potresti usare Contiene invece di uguale –

+2

Divertente coincidenza è, stavo cercando in questa discussione una soluzione per uccidere il chromedriver. Deve essere un problema comune. – 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"); 

Sommario: Non importa se il nome contiene .exe, il processo terminerà. Non è necessario "lasciare fuori .exe dal nome del processo", Funziona al 100%.

+0

un semplice '.Replace (". Exe "," ")' in alto la risposta votata lo farebbe con un codice molto meno contorto e non necessario – AndrewK

+0

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

Problemi correlati