El otro día me surgió la necesidad de matar un proceso desde mi programa en .NET. Este proceso debía estar mal programado y se quedaba cargado en memoria constantemente si daba un error, pero necesitaba cargarlo cada vez que el usuario necesitaba interactuar con él desde mi programa.
Por ello tuve que desarollar una función que hiciese esa labor:
1 2 3 4 5 6 7 8 9 10 11 12 13 |
private bool MataProceso(String sNombre) { foreach(Process clsProcess in Process.GetProcesses()) { if(clsProcess.ProcessName.StartsWith(sNombre)) { clsProcess.Kill(); clsProcess.WaitForExit(); return true; } } return false; } |
Se le pasa como parámetro el nombre del proceso o los primeros carácteres y devuelve true si lo ha matado o false en caso contrario. Este internamente recorre toda la lista de procesos comprobando el nombre de cada uno de ellos y cuando coincida procede a matarlo. Se debe incluir el espacio de nombres System.Diagnostics.