2012-08-31 70 views
1

我正在創建一個搜索Office加載項的實用程序。正在搜索Office加載項

我在我的註冊表中找到了一些加載項,所以我認爲這將是一個很好的開始,但我不能只是添加代碼來查找我的加載項,因爲還有數百個加載項在世界上,我一直在試圖找到一種通過註冊表進行搜索的方式,因此任何建議都將非常感謝。

我發現:

Office插件都位於HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Office所以我想通過關鍵迭代,返回清單位置,加載行爲,說明等

的值

我希望有一些幫助可以指引我正確的方向,如果我沒有讓自己清楚,請評論,我會很樂意回答你的問題。

+0

IIRC那裏曾經是Microsoft Office安裝目錄中的一個子目錄,可以在其中部署加載項。也許你可以掃描那個目錄,除了(或者甚至不是)註冊表? – stakx

+1

您可以使用'Registry.GetValue'或'RegistryKey.GetValue'方法來檢索註冊表信息。看一下MSDN:http://msdn.microsoft.com/en-us/library/microsoft.win32.registry.getvalue.aspx | http://msdn.microsoft.com/en-us/library/xzxd58z1.aspx – varg

回答

1
using (RegistryKey ExcelLocation = Registry.LocalMachine.OpenSubKey(@"SOFTWARE\Wow6432Node\Microsoft\Office\Excel\Addins")) 

     foreach (string subKeyName in ExcelLocation.GetSubKeyNames()) 
     { 
      // Open the key. 
      using (RegistryKey subKey = ExcelLocation.OpenSubKey(subKeyName)) 
      { 
       // Write the value. 
       Console.Writeline(subKey.GetValue("Description")); 
       Console.Writeline(subKey.GetValue("FriendlyName")); 
       Console.Writeline(subKey.GetValue("Manifest")); 
      } 
     } 

這是最接近我要去檢索有關插件的信息它檢索我想從註冊表中提取的信息。