您好,谢谢您的时间。这是我的第一篇文章,如果我没有提供我应该提供的东西,请耐心等待。
我正在尝试提取正在运行的任务(ID,名称和描述)的完整列表,并将它们放在视图列表中。 我从
开始 For Each process In System.Diagnostics.Process.GetProcesses
pid = process.Id
ListView1.Items.Add(pid)
With ListView1
itm = .FindItemWithText(pid, False, 0, False)
If Not itm Is Nothing Then
count = itm.Index
End If
End With
If (pid <> 0 And pid <> 4) Then
ListView1.Items(count).SubItems.Add(process.ProcessName)
'ListView1.Items(count).SubItems.Add(process.Id)
Else
If (pid = 0) Then
ListView1.Items(count).SubItems.Add("Idle Process")
End If
If (pid = 4) Then
ListView1.Items(count).SubItems.Add("SYSTEM")
End If
End If
有效(我读过我需要为id 0和4制作例外)
所以我遇到的问题是我无法在任何地方找到描述(如任务管理器中所示)。 我尝试了描述,标题,命令行,可执行路径,但这些都不匹配任务管理器中的描述字段。
例如:有一个名为dllhost的进程任务管理器将描述描述为“COM Surrogate”我无法在process.xxxx中找到任何内容或进入其他路由并使用wmi调用。任何想法都会受到欢迎。
答案 0 :(得分:0)
您要求的内容可以通过FileVersionInfo
课程完成。
试一试:
Sub Main()
Dim p As New Process
p.StartInfo.FileName = "C:\windows\System32\mspaint.exe"
Dim FileInfoVersion As FileVersionInfo = FileVersionInfo.GetVersionInfo(p.StartInfo.FileName)
MsgBox(FileInfoVersion.FileDescription)
End Sub
答案 1 :(得分:0)
您可能需要找到spoolsv,mspaint等的完整路径
您可以尝试调用GetFullPath(“mspaint.exe”)。
注意:您需要使用“mspaint.exe”,而不仅仅是“mspaint”。
在我的系统上,它返回:C:\ Windows \ System32 \ mspaint.exe
Public Shared Function GetFullPath(ByVal fileName As String) As String
If File.Exists(fileName) Then
Return Path.GetFullPath(fileName)
End If
Dim values As String = Environment.GetEnvironmentVariable("PATH")
If (Not (values) Is Nothing) Then
For Each dirName As String In values.Split(";".ToCharArray, StringSplitOptions.None)
Dim fullPath As String = Path.Combine(dirName, fileName)
If File.Exists(fullPath) Then
Return fullPath
End If
Next
End If
Return Nothing
End Function