我需要用C#编写一个程序来收集计算机上运行的进程信息。使用以下代码,我已经成功获取了进程名称和ID:
... Process[] processlist; ... foreach (Process theprocess in processlist) { Console.WriteLine(theprocess.ProcessName + ...) } ...
但是我无法获取进程的版本(例如Firefox或Visual Studio)。 有人知道如何获取正在运行的进程的版本吗? 非常感谢!
theProcess.MainModule.FileVersionInfo。但有一两个例外情况需要捕捉。
您可以从Process.StartInfo.FileName中获取可执行文件的文件名。使用文件名获取FileVersionInfo的新实例,方法如下:
FileVersionInfo myFileVersionInfo = FileVersionInfo.GetVersionInfo(Process.StartInfo.FileName);
然后访问myFileVersionInfo.FileVersion以获取文件版本。
编辑:Daniel的方法似乎更有效;我不知道你可以直接访问加载的模块的FileVersionInfo。