【发布时间】:2019-01-29 07:31:02
【问题描述】:
我一直在寻找如何找到使用System.Diagnostics.Process.GetProcesses 获得的进程对象的名称(例如,对于进程firefox,'Firefox'),但没有找到任何东西。我试过使用 MainWindowTitle,但不是返回“Firefox”,而是返回当前选项卡的名称,因为这就是 Firefox 将其命名为窗口的名称。有没有办法找到进程的实际显示名称?
【问题讨论】:
-
Process类具有它所拥有的成员。ProcessName属性是显而易见的候选对象。如果您确实希望在任务管理器中显示友好名称,那么Process类不会提供该信息。在没有研究的情况下,我想可以使用 WMI 访问该信息,它会公开大量详细的系统信息。 -
是的,任务管理器中显示的名字就是我想要的。我给 WMI 看看
-
Dim FireFoxProcesses As Process() = Process.GetProcessesByName("firefox")。主进程是唯一一个有非空MainWindowTitle(不一定是Process(0))的进程。窗口标题将是当前选定选项卡的名称(或标题,如您所愿)。 -
Process.GetProcesses()会返回所有可见进程的列表(那些有ProcessName的进程)。与任务管理器相同。如果您正在寻找 Windowed 进程,这些是所有具有非零MainWindowHandle的进程。 -
是的,我正在寻找窗口进程的标题。不久前我发现了哪些进程是窗口化的,但我仍然无法弄清楚如何获得正确的显示名称,MainWindowTitle 很接近但还不够好
标签: vb.net process system.diagnostics