C#确定未高速应用程序中的进程所有者

时间:2012-11-29 20:24:27

标签: c# process owner

我找到了一些能告诉我进程所有者的代码。我的问题是它只有在应用程序具有管理员权限时才有效。有没有办法和一个没有进展的过程做同样的事情?目前,我从InvokeMethod调用中收到“Access Denied”错误。

string query = "Select * from Win32_Process Where Name = \"" + sExeName + "\"";
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;
        processUser = argList[1] + "\\" + argList[0];
        if (processUser == currentUser)
            continue;
        else
            break;
    }
}

0 个答案:

没有答案