如何在C#中確定進(jìn)程的所有者?我正在尋找名為“MyApp.exe”的進(jìn)程,我想確保獲得特定用戶(hù)擁有的進(jìn)程。我使用以下代碼獲取進(jìn)程列表:Process[] processes = Process.GetProcessesByName("MyApp");這給了我一個(gè)進(jìn)程列表,但是在Process類(lèi)中似乎沒(méi)有辦法確定誰(shuí)擁有該進(jìn)程?有關(guān)如何做到這一點(diǎn)的任何想法?
3 回答

慕桂英3389331
TA貢獻(xiàn)2036條經(jīng)驗(yàn) 獲得超8個(gè)贊
這是非C#揚(yáng)聲器的VB版本:
Function GetProcessOwner(ProcessName As String) As String Dim query = "Select * from Win32_Process Where Name = """ + ProcessName + """" Dim searcher = New ManagementObjectSearcher(query) Dim processList = searcher.Get() For Each obj As ManagementObject In processList Dim argList As String() = {String.Empty, String.Empty} Dim returnVal = Convert.ToInt32(obj.InvokeMethod("GetOwner", argList)) If returnVal = 0 Then ' return DOMAIN\user Dim owner = argList(1) + "\\" + argList(0) Return owner End If Next Return "NO OWNER" End Function Function GetProcessOwner(processId As Integer) As String Dim query = "Select * From Win32_Process Where ProcessID = " & processId Dim searcher = New ManagementObjectSearcher(query) Dim processList = searcher.Get() For Each obj As ManagementObject In processList Dim argList As String() = {String.Empty, String.Empty} Dim returnVal = Convert.ToInt32(obj.InvokeMethod("GetOwner", argList)) If returnVal = 0 Then ' return DOMAIN\user Return argList(1) + "\\" + argList(0) End If Next Return "NO OWNER" End Function
- 3 回答
- 0 關(guān)注
- 614 瀏覽
添加回答
舉報(bào)
0/150
提交
取消