在VB.NET中获取进程名称

在VB.NET中获取进程名称,vb.net,process,system.diagnostics,Vb.net,Process,System.diagnostics,我一直在寻找如何找到使用System.Diagnostics.process.getprocesss(例如,对于流程firefox,“firefox”)获取的流程对象的名称,但没有找到任何内容。我尝试过使用MainWindowTitle,但它没有返回“Firefox”,而是返回当前选项卡的名称,因为Firefox就是这样命名它的窗口的。有没有办法找到进程的实际显示名称 For Each p As Process In Process.GetProcesses() Debug.WriteL

我一直在寻找如何找到使用
System.Diagnostics.process.getprocesss
(例如,对于流程
firefox
,“firefox”)获取的流程对象的名称,但没有找到任何内容。我尝试过使用MainWindowTitle,但它没有返回“Firefox”,而是返回当前选项卡的名称,因为Firefox就是这样命名它的窗口的。有没有办法找到进程的实际显示名称

For Each p As Process In Process.GetProcesses()
    Debug.WriteLine(p.ProcessName)
Next
这可能有效,但未经测试。

流程类拥有它所拥有的成员。
ProcessName
属性显然是候选属性。如果您确实希望任务管理器中显示友好的名称,则
进程
类不提供该信息。如果不深入研究,我会想象,可以使用WMI访问这些信息,这会公开大量详细的系统信息。是的,任务管理器中显示的名称就是我想要的。我将把WMI看作Process()=Process.getProcessByName(“firefox”)。主进程是唯一具有非空
MainWindowTitle
(不一定是
process(0)
)的进程。窗口标题将是当前所选选项卡的名称(或您想称之为标题)。
Process.getprocesss()
返回所有可见进程(具有
ProcessName
的进程)的列表。与TaskManager相同。如果您正在查找窗口化进程,则这些进程都具有非零的
MainWindowHandle
。是的,我正在查找窗口化进程的标题。我在前一段时间找到了哪些进程被窗口化,但我仍然不知道如何获得正确的显示名称,MainWindowTitle很接近,但还不够好