.NET は、Windows Management Instrumentation (WMI) を使用してプロセス ライフサイクル イベントを追跡するための強力な方法を提供します。 このアプローチは、特定のプロセスの最終実行時間を決定する場合に特に役立ちます。
Win32_ProcessTrace
クラスを利用すると、プロセスの開始と停止を効果的に監視できます。 次のコードは、これを実現する方法を示しています。
<code class="language-csharp">using System; using System.Management; public class ProcessTracker { public static void Main() { // Initialize event watchers for process start and stop events. ManagementEventWatcher startWatcher = new ManagementEventWatcher( new WqlEventQuery("SELECT * FROM Win32_ProcessStartTrace")); startWatcher.EventArrived += startWatcher_EventArrived; startWatcher.Start(); ManagementEventWatcher stopWatcher = new ManagementEventWatcher( new WqlEventQuery("SELECT * FROM Win32_ProcessStopTrace")); stopWatcher.EventArrived += stopWatcher_EventArrived; stopWatcher.Start(); // Await user input to terminate the application. Console.WriteLine("Press any key to exit."); while (!Console.KeyAvailable) System.Threading.Thread.Sleep(50); // Stop event watchers upon application closure. startWatcher.Stop(); stopWatcher.Stop(); } private static void stopWatcher_EventArrived(object sender, EventArrivedEventArgs e) { // Process stop event handler; logs the process name. Console.WriteLine("Process stopped: {0}", e.NewEvent.Properties["ProcessName"].Value); } private static void startWatcher_EventArrived(object sender, EventArrivedEventArgs e) { // Process start event handler; logs the process name. Console.WriteLine("Process started: {0}", e.NewEvent.Properties["ProcessName"].Value); } }</code>
注意: このアプリケーションには高い権限が必要です。 それに応じてアプリケーション マニフェストを変更します。このコードは、プロセスの開始および停止イベントを追跡するための堅牢なソリューションを提供し、特定のプロセスの最終実行時間を正確に特定できるようにします。
以上が.NET と WMI を使用してプロセスの開始イベントと停止イベントを追跡するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。