首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何在.net中获取进程的用户名或所有者

在.NET中获取进程的用户名或所有者,可以使用System.Diagnostics.Process类。以下是一个简单的示例代码:

代码语言:csharp
复制
using System;
using System.Diagnostics;

class Program
{
    static void Main()
    {
        Process[] processes = Process.GetProcesses();

        foreach (Process process in processes)
        {
            try
            {
                string processName = process.ProcessName;
                string processOwner = GetProcessOwner(process);

                Console.WriteLine($"Process Name: {processName}, Owner: {processOwner}");
            }
            catch (Exception ex)
            {
                Console.WriteLine($"Error: {ex.Message}");
            }
        }
    }

    static string GetProcessOwner(Process process)
    {
        string query = $"SELECT UserName FROM Win32_Process WHERE ProcessId = {process.Id}";
        using (var searcher = new ManagementObjectSearcher(query))
        {
            using (var results = searcher.Get())
            {
                foreach (ManagementObject result in results)
                {
                    return result["UserName"].ToString();
                }
            }
        }

        return "Unknown";
    }
}

这段代码首先使用Process.GetProcesses()方法获取所有进程,然后遍历每个进程并调用GetProcessOwner()方法获取进程的用户名。GetProcessOwner()方法使用WMI查询来获取进程的用户名。最后,将进程名称和用户名输出到控制台。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

领券