ホームページ > バックエンド開発 > C++ > .NET と WMI を使用してプロセスの開始イベントと停止イベントを追跡するにはどうすればよいですか?

.NET と WMI を使用してプロセスの開始イベントと停止イベントを追跡するにはどうすればよいですか?

Barbara Streisand
リリース: 2025-01-21 00:26:08
オリジナル
259 人が閲覧しました

How Can I Track Process Start and Stop Events Using .NET and WMI?

.NET と WMI を使用したプロセス アクティビティの監視

.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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート