2016-02-12 234 views
0

我的Microsoft Office 2013安裝有一個的applicationID價值,我需要得到編程 (這是0ff1ce15-a989-479d-af46-f275c6370663對於MS Office 2010安裝它59a52881-a989-479d-af46-f275c6370663。) 所以最終我有2個問題:獲取的MS Office的applicationID編程

  1. 對於不同PC上的相同MS Office版本,這些值是否相同?
  2. 如何以編程方式在C++中獲取2007-2016的這些值? (通過自動化或其他方式)。

在此先感謝您。

回答

0

正在尋找另一個答案,所以我認爲我會回覆,是的,他們在不同的機器上是相同的,儘管每個辦公室版本都會有它自己的唯一ID。下面

我使用C#和使用WMI查詢來尋找類SoftwareLicensingProduct的細節,雖然它在OfficeSoftwareProtectionProduct也發現是我的查詢

"SELECT ID, ApplicationId, PartialProductKey, Name, ProductKeyID FROM SoftwareLicensingProduct WHERE ApplicationId = '" + sApplicationId+"' AND PartialProductKey <> NULL" 

我有一個運行的代碼標識之前的版本辦公室工作站和查詢的結果上會設置相關的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但不能得到全面那個呢。

不知道這是否有幫助?

Barry