ホームページ > バックエンド開発 > C++ > ID または名前を使用して C# プロセスの所有者を特定するにはどうすればよいですか?

ID または名前を使用して C# プロセスの所有者を特定するにはどうすればよいですか?

Barbara Streisand
リリース: 2025-01-17 11:32:10
オリジナル
232 人が閲覧しました

How Can I Determine the Owner of a C# Process Using its ID or Name?

C# でのプロセス所有権の決定

プロセスの所有者を取得することは、システム リソースを管理する場合に不可欠なタスクです。このコンテキストでは、プロセスのリストを取得した後でも、「MyApp.exe」という名前のプロセスの所有者を識別する方法を探しています。

Process クラスは基本的なプロセス情報を提供しますが、その機能がありません。所有権を決定するため。この課題に対処するには、Windows Management Instrumentation (WMI) を使用できます。 System.Management.dll への参照を追加すると、プロセスに関連付けられたユーザーを取得できます。

方法 1: プロセス ID による

public string GetProcessOwner(int processId)
{
    string query = "Select * From Win32_Process Where ProcessID = " + processId;
    ManagementObjectSearcher searcher = new ManagementObjectSearcher(query);
    ManagementObjectCollection processList = searcher.Get();

    foreach (ManagementObject obj in processList)
    {
        string[] argList = new string[] { string.Empty, string.Empty };
        int returnVal = Convert.ToInt32(obj.InvokeMethod("GetOwner", argList));
        if (returnVal == 0)
        {
            // return DOMAIN\user
            return argList[1] + "\" + argList[0];
        }
    }

    return "NO OWNER";
}
ログイン後にコピー

方法 2: プロセス名による

public string GetProcessOwner(string processName)
{
    string query = "Select * from Win32_Process Where Name = \"" + processName + "\"";
    ManagementObjectSearcher searcher = new ManagementObjectSearcher(query);
    ManagementObjectCollection processList = searcher.Get();

    foreach (ManagementObject obj in processList)
    {
        string[] argList = new string[] { string.Empty, string.Empty };
        int returnVal = Convert.ToInt32(obj.InvokeMethod("GetOwner", argList));
        if (returnVal == 0)
        {
            // return DOMAIN\user
            string owner = argList[1] + "\" + argList[0];
            return owner;       
        }
    }

    return "NO OWNER";
}
ログイン後にコピー

これらの WMI ベースの利用によるメソッドを使用すると、プロセス ID または名前を使用してプロセスの所有者を効率的に判断できます。この情報は、システム プロセスを分析し、それに応じてアプリケーションを調整するために非常に貴重です。

以上がID または名前を使用して C# プロセスの所有者を特定するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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