Moniteur de processus .NET

Existe-t-il un moyen de déterminer à quel moment la dernière fois qu’un ordinateur spécifique a exécuté un processus?

Je peux utiliser ce qui suit pour déterminer si un processus est en cours d’exécution, mais l’application ne peut pas saisir le processus s’il s’est arrêté depuis.

Process[] process = Process.GetProcessesByName(processName, serverName); 

WMI fournit un moyen de suivre les processus commençant et se terminant avec les classes Win32_ProcessTrace. Mieux montré avec un exemple. Démarrez une nouvelle application console, Projet + Ajouter une référence, sélectionnez System.Management. Collez ce code:

 using System; using System.Management; class Process { public static void Main() { ManagementEventWatcher startWatch = new ManagementEventWatcher( new WqlEventQuery("SELECT * FROM Win32_ProcessStartTrace")); startWatch.EventArrived += new EventArrivedEventHandler(startWatch_EventArrived); startWatch.Start(); ManagementEventWatcher stopWatch = new ManagementEventWatcher( new WqlEventQuery("SELECT * FROM Win32_ProcessStopTrace")); stopWatch.EventArrived += new EventArrivedEventHandler(stopWatch_EventArrived); stopWatch.Start(); Console.WriteLine("Press any key to exit"); while (!Console.KeyAvailable) System.Threading.Thread.Sleep(50); startWatch.Stop(); stopWatch.Stop(); } static void stopWatch_EventArrived(object sender, EventArrivedEventArgs e) { Console.WriteLine("Process stopped: {0}", e.NewEvent.Properties["ProcessName"].Value); } static void startWatch_EventArrived(object sender, EventArrivedEventArgs e) { Console.WriteLine("Process started: {0}", e.NewEvent.Properties["ProcessName"].Value); } } 

Modifiez le manifeste pour que ce programme s’exécute en mode élevé. Ensuite, démarrez simplement certains programmes pour le voir au travail. Attention, ce n’est pas particulièrement rapide.

Vous ne pourrez pas faire cela en utilisant la classe Process . Cependant, il devrait être possible de déterminer la dernière exécution d’une application en configurant le suivi des processus d’audit dans Windows. Les liens suivants pourraient vous aider à démarrer:

Suivi du processus d’audit

Comment puis-je suivre quels programmes vont et viennent sur ma machine?

Le suivi des processus créera des entrées dans le journal des événements Windows, auxquelles vous pourrez accéder via C #.