¿Puedo obtener la ExecutablePath de un objeto System.Management.EventArrivedEventArgs?

StackOverflow https://stackoverflow.com/questions/2134121

  •  22-09-2019
  •  | 
  •  

Pregunta

Estoy usando un System.Management.ManagementEventWatcher para obtener el identificador de proceso y la ruta de ejecución en un proceso iniciado:

private void startWatcher_EventArrived(Object sender, EventArrivedEventArgs e)
{
    String processID = e.NewEvent.Properties["ProcessID"].Value.ToString();

    var searcher = new ManagementObjectSearcher(new WqlObjectQuery(String.Format("Select ExecutablePath from Win32_Process where ProcessID = {0}", processID)));

    ManagementObject managementObject = null;
    foreach (ManagementObject obj in searcher.Get())
    {
        managementObject = obj;
        break;
    }

    Console.WriteLine(managementObject["ExecutablePath"]);
}

El uso de este WQL de consulta:

  

Seleccione ExecutablePath de   Win32_ProcessStartTrace

¿Hay una manera que puedo evitar hacer la búsqueda de objetos, pero aún así obtener la ExecutionPath, con lo que ya está disponible en el objeto EventArrivedEventArgs?

Todo lo que realmente es la necesidad ProcessID y la ExecuatblePath para cada nuevo proceso que se inicia. ¿Es esta la forma más sencilla de conseguir eso?

¿Fue útil?

Solución

No, lo que tienes es tan bueno como se pone. Las propiedades disponibles se enumeran aquí ...

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top