2011-04-09 137 views
0

我試圖從Windows註冊表,這下幾個分支坐在得到的值獲得的值(右窗格):從註冊表

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\... 

考慮下面的代碼:

RegistryKey openSubKey = settings.OpenSubKey(
    @"\\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Print\Printers\DefaultSpoolDirectory"); 

openSubKey.SetValue("printername", ""); 

Microsoft.Win32.Registry中將設置設置爲LocalMachine。

但是,我會在第一行代碼後得到空值。是什麼賦予了?

+0

這當然是* *不是*如何將打印機添加到Windows機器。 – 2011-04-10 07:06:42

回答

2

兩個錯誤,\ HKEY_LOCAL_MACHINE不屬於那裏,你應該使用Registry.LocalMachine。而DefaultSpoolDirectory不屬於那裏,它是一個值,而不是一個關鍵。

SetValue()參數看起來也不高興。如果你想添加一臺打印機(不要),那麼你需要添加一個鍵,而不是一個值。

+0

請注意包含值名稱的密鑰。 – 2011-04-09 23:57:00

+0

感謝提示,他們已經幫助。 – dotnetdev 2011-04-10 22:01:24

0

嘗試刪除 「\ HKEY_LOCAL_MACHINE」

0

Richard的答案似乎是正確的,但只是爲了進一步通知您,您可以通過Registry.LocalMachine屬性訪問LocalMachine註冊表範圍 - 查看this MSDN link以瞭解詳細信息。舉個例子,試試這個:

var openSubKey = Registry.LocalMachine.OpenSubKey(
    @"SOFTWARE\Microsoft\Windows NT\CurrentVersion\Print\Printers");