专业网站建设品牌,十四年专业建站经验,服务6000+客户--广州京杭网络
免费热线:400-683-0016      微信咨询  |  联系我们

如何在C#中获取进程的用户名

当前位置:网站建设 > 技术支持
资料来源:网络整理       时间:2023/2/14 1:14:14       共计:3617 浏览

需要添加对 System.Management.dll 的引用

using System.Diagnostics;
using System.Management;
static void Main(string[] args)
{
        foreach (Process p in Process.GetProcesses())
       {
            Console.Write(p.ProcessName);
            Console.Write("----");
            Console.WriteLine(GetProcessUserName(p.Id));//根据进程的ID获得进程的用户名
       }
       Console.ReadKey();
}

       /// <summary>

       /// 获得进程的用户名

       /// </summary>

       /// <param name="pID"></param>

       /// <returns></returns>

       private static string GetProcessUserName(int pID)

       {

           string text1 = null;

           SelectQuery query1 =

               new SelectQuery("Select * from Win32_Process WHERE processID=" + pID);

           ManagementObjectSearcher searcher1 = new ManagementObjectSearcher(query1);

           try

           {

               foreach (ManagementObject disk in searcher1.Get())

               {

                   ManagementBaseObject inPar = null;

                   ManagementBaseObject outPar = null;

                   inPar = disk.GetMethodParameters("GetOwner");

                   outPar = disk.InvokeMethod("GetOwner", inPar, null);

                   text1 = outPar["User"].ToString();

                   break;

               }

           }

           catch

           {

               text1 = "SYSTEM";

           }

           return text1;

       }

版权说明:
本网站凡注明“广州京杭 原创”的皆为本站原创文章,如需转载请注明出处!
本网转载皆注明出处,遵循行业规范,如发现作品内容版权或其它问题的,请与我们联系处理!
欢迎扫描右侧微信二维码与我们联系。
·上一条:在C#中的PerformanceCounter类的使用实例 | ·下一条:如何在C#控制台程序使用日志组件Log4net?

Copyright © 广州京杭网络科技有限公司 2005-2024 版权所有    粤ICP备16019765号 

广州京杭网络科技有限公司 版权所有