Puis-je obtenir le ExecutablePath d'un objet System.Management.EventArrivedEventArgs?

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

  •  22-09-2019
  •  | 
  •  

Question

J'utilise un System.Management.ManagementEventWatcher pour obtenir l'ID de processus et le chemin exécutable pour un processus commencé:

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"]);
}

En utilisant cette requête WQL:

  

Sélectionnez ExecutablePath de   Win32_ProcessStartTrace

Est-il possible que je peux éviter de faire la recherche d'objets, mais encore obtenir le ExecutionPath, en utilisant ce qui est déjà disponible dans les EventArrivedEventArgs objet?

Tout ce que je vraiment besoin est le ProcessID et le ExecuatblePath pour chaque nouveau processus qui démarre. Est-ce la façon la plus simple d'obtenir cela?

Était-ce utile?

La solution

Non, ce que tu as est aussi bon qu'il obtient. Les propriétés disponibles sont répertoriés ici ...

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top