检索过程描述信息

我正在尝试检索进程信息,我知道我可以使用:

Process[] myProcesses = Process.GetProcesses(); 

但是如何检索流程描述? 是通过一些Win32 API调用吗? 我正在运行Vista,当我在任务管理器中的进程选项卡下单击时,我看到了描述。

您在任务管理器中看到的实际上是可执行映像的“描述”字段。

您可以使用GetFileVersionInfo()VerQueryValue() WinAPI调用来访问各种版本信息,例如CompanyName或FileDescription。

对于.Net方式,使用FileVersionInfoFileDescription成员,使用通过Process.MainModule.FileName的可执行文件名实例化。

另一种方式是通过Assembly 。 从可执行映像加载程序集,然后查询AssemblyDescriptionAttribute自定义属性。

你只需要进一步了解属性。 假设您有一个记事本运行实例。

 Process[] proc = Process.GetProcessesByName("notepad"); Console.WriteLine("Process version- " + proc[0].MainModule.FileVersionInfo.FileVersion); Console.WriteLine("Process description- " + proc[0].MainModule.FileVersionInfo.FileDescription); 

你去!

这是我能看到的唯一方法。 我试过Process和Win32_Process,但没有去。

 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Management; using System.Diagnostics; namespace Management { class Program { static void Main(string[] args) { var ps = Process.GetProcesses(); foreach (var p in ps) { try { var desc = FileVersionInfo.GetVersionInfo(p.MainModule.FileName); Console.WriteLine(desc.FileDescription); } catch { Console.WriteLine("Access Denied"); } } Console.ReadLine(); } } }