2017-02-08 88 views
0

我知道已安裝Acrobat reader,但我想知道安裝了哪個版本的acrobat? 但不使用註冊表項。 有任何Acrobat閱讀器功能獲取它?如何在不使用註冊表的情況下確定Acrobat Reader版本

在此先感謝

我曾經在一些地方

RegistryKey adobe = Registry.LocalMachine.OpenSubKey("Software").OpenSubKey("Adobe"); 
     if (adobe != null) 
     { 
      RegistryKey acroRead = adobe.OpenSubKey("Acrobat Reader"); 
      if (acroRead != null) 
      { 
       string[] acroReadVersions = acroRead.GetSubKeyNames(); 

       string versionNos = ""; 
       string ResultAcrobat =""; 
       foreach (string versionNumber in acroReadVersions) 
       { 
        if (Convert.ToDecimal(versionNumber) >= 9) 
        { 
         ResultAcrobat = "OK"; 
        } 
        versionNos += ",Version v" + versionNumber; 
       } 
       versionNos = versionNos.Remove(0, 1); 
       AcrobatReader = versionNos; 

       if (Convert.ToString(dr["ResultAcrobat"]) == "") 
       { 
        ResultAcrobat = "Error"; 

       } 

      } 

回答

0

當然下面的代碼,但它拋出異常,但它比讀取註冊表(持有實際的應用程序被打開)更多的hackish。

我的建議,如果你不能讀取註冊表是這樣的:

  • 找到所有文件名在Program Files文件夾AcroRd32.exe,在我的情況下C:\Program Files (x86)\Adobe;
  • 得到可執行文件的版本使用此代碼中發現:

    string[] files = Directory.GetFiles(@"C:\Program Files (x86)\Adobe", "AcroRd32.exe", SearchOption.AllDirectories); 
    
    // determine which one to use 
    string pathToAdobeExe = files.First(); 
    
    string version = FileVersionInfo.GetVersionInfo(pathToAdobeExe).ProductVersion; 
    
+0

感謝帕特里克,但如何知道在哪裏安裝Acrobat? –

+0

閱讀註冊表... –

+0

其實我已經使用註冊表,並得到了版本和它的安裝路徑,但它給一些客戶端的錯誤。這意味着它在不同的位置有不同的表現 –

相關問題