【发布时间】:2014-04-24 20:53:29
【问题描述】:
我正在制作一个程序来查找进程并查看哪个用户正在使用它们。我有扫描代码,但没有用户名代码。用户名必须是字符串。例如:我有 2 个人运行一些进程,这些进程将显示在列表视图中。第一列用于进程,第二列用于用户名。我希望它是这样的:
(此处为进程)(此处为用户名)
(此处为进程)(此处为用户名)....
您明白我的意思,并且有比计算机上运行的进程多得多的进程。问题是:如何获取使用该流程的人的用户名?
编辑:代码。这是我的代码。
For Each pr As Process In Process.GetProcesses
Dim lvi As ListViewItem = ListView1.Items.Add(CStr(pr.ProcessName))
'Now I need something to put for the username
Next
这是另一个最常见的。
Public Function GetProcessOwner(processId As Integer) As String
Dim query As String = "Select * From Win32_Process Where ProcessID = " + processId
Dim searcher As New ManagementObjectSearcher(query)
Dim processList As ManagementObjectCollection = searcher.[Get]()
For Each obj As ManagementObject In processList
Dim argList As String() = New String() {String.Empty, String.Empty}
Dim returnVal As Integer = Convert.ToInt32(obj.InvokeMethod("GetOwner", argList))
If returnVal = 0 Then
' argList(0) == User
' argList(1) == DOMAIN
Return argList(0)
End If
Next
Return "NO OWNER"
End Function
【问题讨论】: