【发布时间】:2015-11-06 10:28:53
【问题描述】:
当我有进程名称时,我需要知道如何获取这样的应用程序名称:
我目前的进展:
Declare Function GetWindowThreadProcessId Lib "user32.dll" (ByVal hwnd As Int32, ByRef lpdwProcessId As Int32) As Int32
Private Declare Function GetForegroundWindow Lib "user32" Alias "GetForegroundWindow" () As IntPtr
'Private Declare Auto Function GetWindowText Lib "user32" (ByVal hWnd As System.IntPtr, ByVal lpString As System.Text.StringBuilder, ByVal cch As Integer) As Integer
Private makel As String
Private Function GetActiveAppProcess() As Process
Dim activeProcessID As IntPtr
GetWindowThreadProcessId(GetForegroundWindow(), activeProcessID)
Return Process.GetProcessById(activeProcessID)
End Function
Sub GetProcInfo()
Dim activeProcess As Process = GetActiveAppProcess()
With activeProcess
ProcessName = .ProcessName
Windowtitle = .MainWindowTitle
'Application name = ?
End With
End Sub
除了 Process.ProcessName 返回“explorer”之外,我就快到了。如何获得“Windows Explorer”的值? 任何帮助表示赞赏。
【问题讨论】:
-
使用 Process.MainModule.Filename 获取 exe 的路径。然后 FileVersionInfo.GetVersionInfo(path).FileDescription 得到描述。
-
太棒了!它工作:) 谢谢汉斯! ApplicationName = FileVersionInfo.GetVersionInfo(activeProcess.MainModule.FileName).FileDescription
-
@HansPassant 你能添加答案来结束这个问题吗?
标签: .net vb.net process taskmanager