Ciao a tutti, espongo subito il quesito:
stò cercando da qualche giorno un modo valido per intercettare automaticamente l'avvio di un nuovo processo e per il momento ho trovato solo questi 2 esempi che però non hanno portato a nulla:
http://stackoverflow.com/questions/3...-using-c-sharp
http://bytes.com/topic/c-sharp/answe...process-loaded
Lo scopo a cui voglio arrivare è quello di sapere,tra tutti i processi attivi, se l'utente ha aperto un nuovo Internet Explorer; se si, di leggerne la query di ricerca, quest'ultimo punto è abbastanza semplice e riesco a farlo solo sui I.E. già attivi all'avvio del mio programma.
Questo è ciò che ho provato a fare guardando gli esempi:
Grazie a tutti anticipatamente.codice:public static void MonitorProcessi() { //var processiAttivi = Process.GetProcesses(); ManagementEventWatcher guarda = new ManagementEventWatcher(new WqlEventQuery("SELECT * FROM Win32_ProcessStartTrace")); guarda.EventArrived += new EventArrivedEventHandler(guarda_EventArrived); guarda.Start(); ManagementEventWatcher stop_guarda = new ManagementEventWatcher(new WqlEventQuery("SELECT * FROM Win32_ProcessStartTrace")); stop_guarda.EventArrived += new EventArrivedEventHandler(stop_guarda_EventArrived); stop_guarda.Start(); guarda.Stop(); stop_guarda.Stop(); } static void guarda_EventArrived(object sender, EventArrivedEventArgs e) { string nuovoProcesso = e.NewEvent.Properties["ProcessName"].Value.ToString(); } protected static void stop_guarda_EventArrived(object sender, EventArrivedEventArgs e) { string b = e.NewEvent.Properties["ProcessName"].Value.ToString(); }