2011-04-08 41 views
1

我希望能夠得到所有值對的位置,在註冊表,就像所有的值:得到一個特定的分支,它在註冊表中

RegistryKey printerkey = 
       settingsRegKey.OpenSubKey("\\Software\\Microsoft\\Windows NT\\CurrentVersion\\Print\\Printers\\DevModes2\\Settings"); 

我可以選擇Registry.LocalSystem等,但我如何才能到達特定的分支(如上所述)?

感謝

回答

9
Dictionary<string, object> keyValuePairs; 
using (var settingsRegKey = Registry.LocalMachine.OpenSubKey("Software\\Microsoft\\Windows NT\\CurrentVersion\\Print\\Printers\\DevModes2\\Settings")) 
{ 
     var valueNames = settingsRegKey.GetValueNames(); 
     keyValuePairs = valueNames.ToDictionary(name => name, settingsRegKey.GetValue); 
} 
+1

您也應該檢查settingRegKey不爲空。密鑰可能不存在。如果設置RegKey不爲null,那麼你可以調用GetValueNames。 – alexandrudicu 2012-10-09 11:01:10

+0

如果您在64位計算機上,請使用此方法打開'Registry.LocalMachine':http://stackoverflow.com/a/13190185/244353 – Mrchief 2014-03-20 18:29:37

相關問題