我如何在VB Express 2010中获得流程描述(任务管理器中显示的流程描述)

时间:2015-02-17 19:12:38

标签: vb.net

您好,谢谢您的时间。这是我的第一篇文章,如果我没有提供我应该提供的东西,请耐心等待。

我正在尝试提取正在运行的任务(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调用。任何想法都会受到欢迎。

2 个答案:

答案 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