111,120
社区成员
发帖
与我相关
我的任务
分享using System.Diagnostics;
using System.Management;
private static string GetProcessUserName(int pID)
{
string userName = null;
SelectQuery query = new SelectQuery("Select * from Win32_Process WHERE processID=" + pID);
ManagementObjectSearcher searcher1 = new ManagementObjectSearcher(query);
try
{
foreach (ManagementObject disk in searcher1.Get())
{
ManagementBaseObject inPar = null;
ManagementBaseObject outPar = null;
inPar = disk.GetMethodParameters("GetOwner");
outPar = disk.InvokeMethod("GetOwner", inPar, null);
userName = outPar["User"].ToString();
break;
}
}
catch
{
userName = "SYSTEM";
}
return userName;
}
List<string> userList = new List<string>();
foreach (Process p in Process.GetProcesses())
{
userList.Add(GetProcessUserName(p.Id));
}