Estoy usando el objeto System.Diagnostic.Process
de C#.
Una de sus propiedades es Id
.
El Id
que este produce no es el mismo que el PID
, que se muestra en Windows Task Manager
.
¿Por qué es esto?System.Diaganostics.Process.Id No se muestra el mismo ID de proceso en el Administrador de tareas. ¿Por qué?
Verá, una vez que se inicia este proceso.
Lanza otros dos procesos no administrados, para los cuales no puedo obtener identificadores explícitamente por las referencias de propiedades del objeto.
Tengo que buscar en todos los procesos para encontrarlos por nombre de proceso a través de System.Diagnostics.Process.GetProcesses()
.
Estoy tratando de encontrar una manera confiable de matar este proceso y todos los procesos asociados por PID
, el que se muestra en Task Manager
.
¿Hay una manera mejor?
No puedo simplemente matar todos los procesos con los nombres de proceso asociados, porque eso puede matar a otras instancias de esos procesos que no tienen nada que ver con mi programa.
Si se inicia el proceso con System.Diagnostics.Process, a continuación, llamar .Refresh() antes de comprobar la ID. El sistema operativo asigna la ID cuando se inicia el proceso, no cuando se crea una instancia del objeto Proceso. –