C# 如何找到流程所属的产品?
我需要获取有关流程产品的信息。C# 如何找到流程所属的产品?,c#,.net,windows,process,C#,.net,Windows,Process,我需要获取有关流程产品的信息。 例如,我需要知道进程WINWORD属于Office 2010还是Office 2013。另一个例子是adobe creative suite的软件。 一般来说,对于一个流程,不同套件的名称可以相同,如何找出套件版本 在服务中,我有一个从服务器检索的进程名列表。我跟踪用户使用这些进程的时间,并将此信息发送回服务器。由于该服务将安装在多台计算机上,因此Office套件、Adobe套件或任何其他产品可能会有所不同,但每个套件中的流程名称可能相同。 目前,在服务器中,我无
例如,我需要知道进程
WINWORD
属于Office 2010还是Office 2013。另一个例子是adobe creative suite的软件。一般来说,对于一个流程,不同套件的名称可以相同,如何找出套件版本 在服务中,我有一个从服务器检索的进程名列表。我跟踪用户使用这些进程的时间,并将此信息发送回服务器。由于该服务将安装在多台计算机上,因此Office套件、Adobe套件或任何其他产品可能会有所不同,但每个套件中的流程名称可能相同。
目前,在服务器中,我无法确定进程属于哪个版本。例如,要求能够显示每个版本使用Microsoft Word 2010的时间等 我希望我说的很清楚
感谢@Niels的贡献,您的贡献是从
FileVersionInfo
中检索流程MajorPart
我们可以将此信息作为附加信息发送。当然,识别Office这样的套件很简单,因为所有产品版本和主要部件都是相同的,但是…在adobe列表中,您向我展示了在adobe套件中,大多数产品都会有不同的版本,这就是我们检查流程
FileVersionInfo
时遇到的问题。必须在服务器中设置一种方法,将每个产品的主要版本与adobe套件链接起来,这意味着必须在相同或类似的情况下为每个软件执行此操作。您可以查看文件属性,这也是Explorer公开的:
要在.NET中检索此数据,请检查由返回的实例。两个帮助页面都提供了示例,但最简单的示例适用于您的案例,因为您只对主要版本号感兴趣:
// Get the file version for the notepad.
FileVersionInfo myFileVersionInfo =
FileVersionInfo.GetVersionInfo(Environment.SystemDirectory + "\\Notepad.exe");
// Print the product major part number.
textBox1.Text = "Product major part number: " + myFileVersionInfo.ProductMajorPart;
构建编号本身有很好的文档记录,可用于良好的软件套件。我们正在考虑从
过程中获取信息。MainModule
,您可以直接从那里获取文件名
(完整路径)和文件版本信息
。但我不能100%确定其他套件的信息是否相同,像adobe的CS或AutoCAD。但是,也许仅仅使用主要部件号就可以了,每个版本的可执行文件都具有唯一性似乎是合理的并不是说微软坚持语义版本控制,而是基本原则是通用的,即主版本号表示主版本。主版本和次版本的组合总是表示产品的“发货版本”。对于Adobe来说,有..不仅仅是指Autocad,而是整个Autocad Design Suite,在同一许可证下有更多的产品。请阅读我对这篇文章的编辑。我想我所要做的就是对客户端安装的软件进行更多的研究,检查套件中的版本,并找出一种方法来改进服务器中的模型,以适应我的研究结果。