繁体   English   中英

以编程方式获取MS Office ApplicationID

[英]Get MS Office ApplicationID programmatically

我的Microsoft Office 2013安装具有我需要以编程方式获取的ApplicationId值(它是0ff1ce15-a989-479d-af46-f275c6370663 。对于MS Office 2010安装,它是59a52881-a989-479d-af46-f275c6370663 )所以最终我有2问题:

  1. 这些值对于不同PC上的相同MS Office版本是否相同?
  2. 如何以C ++编程方式获取2007-2016年的这些值? (通过自动化或其他方式)。

先感谢您。

我在寻找另一个答案,所以我想回信,是的,尽管每个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启动为隐藏状态并检索应用程序版本,然后使用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,但目前还没有解决。

不确定是否有帮助?

巴里

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM