一直在寻找另一个答案,所以我想我会回复,是的,它们在不同的机器上是相同的,尽管如您所知,每个 office 版本都有自己的唯一 ID。
我使用 c# 并使用 WMI 查询来查找 SoftwareLicensingProduct 类中的详细信息,尽管它也在 OfficeSoftwareProtectionProduct 下面是我的查询
"SELECT ID, ApplicationId, PartialProductKey, Name, ProductKeyID FROM SoftwareLicensingProduct WHERE ApplicationId = '" + sApplicationId+"' AND PartialProductKey <> NULL"
我有之前运行的代码识别工作站上的 office 版本,该查询的结果将设置相关的 ApplicationID
if (sVersion == "2013")
{
sApplicationId = "Office 15 Application ID";
}
else if (sVersion == "2016")
{
sApplicationId = "Office 16 Application ID";
}
要获取包装盒上的 Office 版本,您可以解析注册表或不确定是否可以在 c++ 中执行此操作,我启动 Word hidden 并检索应用程序版本,然后使用 Case 语句
switch (appVersion.Version.ToString())
{
case "15.0":
sVersion = "2013";
break;
case "16.0":
sVersion = "2016";
break;
case "14.0":
sVersion = "2010";
break;
default:
sVersion = "No Version detected!";
break;
}
我知道我可能会进一步自动执行此操作并从 WMI 查询中提取 ApplicationID,但尚未解决。
不确定这是否有帮助?
巴里