2016-02-12 3 views
0

Моя установка Microsoft Office 2013 имеет значение ApplicationID, что мне нужно, чтобы получить программно (она 0ff1ce15-a989-479d-af46-f275c6370663 Для установки MS Office 2010 он 59a52881-a989-479d-af46-f275c6370663.) Так в конце концов, у меня есть 2 вопроса:Получить MS Office ApplicationID программным

  1. Являются ли эти значения одинаковыми для тех же версий MS Office на разных ПК?
  2. Как программно получить эти значения в 2007-2016 годах на C++? (через автоматизацию или каким-либо другим способом).

Благодарим вас заранее.

ответ

0

искал еще один ответ, поэтому подумал, что я бы ответил, да, они одинаковы на разных машинах, хотя каждая версия офиса будет иметь свой собственный уникальный идентификатор, как вы знаете.

Я использую 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"; 
     } 

Чтобы получить версию офиса, который находится на коробке можно либо разобрать системный реестр или не уверен, что если вы можете сделать это в C++ я запустил слово скрытых и извлекаться версия приложения затем использовал саз

  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; 
     } 

Я знаю, что я мог бы автоматизировать этот процесс дальше и вытащить ApplicationID из запроса WMI, но не обходили к тому, что до сих пор.

Не уверен, что это помогает?

Барри

Смежные вопросы