我如何知道使用 C# 的另一个应用程序的版本
我需要用 C# 编写一个程序来收集有关我的计算机上运行的进程的信息。我使用以下代码成功获取了进程的名称和 ID:
... Process[] 进程列表; ... foreach(处理进程列表中的进程) { Console.WriteLine(进程.进程名称 + ...) } ...
但我无法获取进程的版本(例如 Firefox 或 Visual Studio)。 有人知道如何获取正在运行的进程的版本吗? 多谢!
i need to write a program in c# to collect information about processes running on my computer. I successfuly get the processes's names and ID using this code:
...
Process[] processlist;
...
foreach (Process theprocess in processlist)
{
Console.WriteLine(theprocess.ProcessName + ...)
}
...
But i couldn't get the version of the processes (like Firefox or Visual Studio).
does anybody know how to get the version of a running process?
thanks a lot!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
Process.MainModule.FileVersionInfo。但您需要捕获一两个异常。
theProcess.MainModule.FileVersionInfo. But there are one or two exceptions you need to catch.
您可以从 Process.StartInfo.FileName 获取可执行文件的文件名。使用如下文件名获取 FileVersionInfo 的新实例this:
然后访问 myFileVersionInfo.FileVersion 来获取文件版本。
编辑:丹尼尔的方式似乎更有效;我不知道你可以直接访问加载模块的 FileVersionInfo 。
You can get the filename of the executable from Process.StartInfo.FileName. Get a new instance of FileVersionInfo using the filename like this:
Then access myFileVersionInfo.FileVersion to get the file version.
EDIT: Daniel's way seems more efficient; I didn't know you could just access the loaded module's FileVersionInfo directly..
请记住,可执行文件的 FileVersion 和/或 ProductVersion 可能不一定与应用程序的版本相同。例如,Firefox 3.5.3 报告的文件版本为 1.9.1.3523,但产品版本为 3.5.3。另一方面,VMware Player 2.5.1 报告的文件版本为 6.5.1.5078,产品版本为 6.5.1 build-126130。
根据您使用这些信息的目的,这可能是也可能不是问题。
Keep in mind that the executable's FileVersion and/or ProductVersion may not necessarily be the same as the application's version. For example, Firefox 3.5.3 reports a FileVersion of 1.9.1.3523, but a ProductVersion of 3.5.3. VMware Player 2.5.1, on the other hand, reports a FileVersion of 6.5.1.5078 and a ProductVersion of 6.5.1 build-126130.
Depending on what you are using the information for, this may or may not be an issue.