2012-04-11 10 views
0

Im Moment habe ich das Follow-up in VS 2010Kill mehrere Prozesse in VB?

 Dim myProcess() As Process = System.Diagnostics.Process.GetProcessesByName("calc") 

    For Each myKill As Process In myProcess 
     myKill.Kill() 

Jedoch habe ich nicht zu bekommen kann scheinen es mehr als einen Prozess zu töten. Beispiel Ich habe versucht

("calc",mspaint") 
("calc,mspaint") 
("calc"),("mspaint") 

Irgendwelche Ideen? Vielen Dank für Ihre Zeit/Unterstützung

Antwort

2

Zitat von MSDN-Dokumentation von GetProcessByName:

Erstellt einen Array neuer Prozesskomponenten und ordnet sie die vorhandenen Prozessressourcen, die alle die angegebenen Prozess Namen.

Sie nicht eine Reihe von Argumenten it.Instead passieren können, können Sie alle Prozesse mit der GetProcesses Methode erhalten, durchlaufen alle Prozesse über und prüfen, ob der Name Spiel einer der Namen, die Sie wünschen:

Dim procs = System.Diagnostics.Process.GetProcesses().Where((Function(p) p.ProcessName = "calc" Or p.ProcessName = "mspaint")) 
      For Each p As Process In procs 
       p.Kill() 
      Next 

Nicht LINQ Weg:

For Each p As Process In Process.GetProcesses() 
      If p.ProcessName = "calc" Or p.ProcessName = "mspaint" Then 
       p.Kill() 
      End If 
     Next 
+0

Thanks :), das funktioniert. Aber was wollte ich mehr als zwei töten? (Ich werde es selbst in der Zwischenzeit arbeiten) –

+0

NVM letzten Kommentar, habe ich dies für jeden p als Prozess in Process.GetProcesses() Wenn p.ProcessName = "calc" Oder p.ProcessName = "mspaint" Oder p.ProcessName = "pidgin" Dann p.Kill() Ende Wenn Weiter –

+0

Sie vergessen zu erklären, warum der Code, den er versuchte, nicht funktioniert. –