2016-10-01 33 views
0

我不能在以下路徑下創建一個子項:C#註冊表無法創建一個子項

Registry.CurrentUser + @"\Software\"; 

我想,用下面的代碼:

 RegistryKey Key = Registry.CurrentUser.OpenSubKey("SOFTWARE").CreateSubKey("MyKey"); 
     Key.SetValue("Check","Yes"); 

不能寫:Cannot write to the registry key.

我也嘗試用管理員權限打開應用程序,但仍顯示相同的錯誤。

請注意,我可以毫不管理員權限創建Registry.CurrentUser子項,我已經讀/完全控制權限的兩個路徑(當前用戶和軟件)

回答

1

這是因爲根據MSDN, OpenSubKey以只讀方式檢索子項。請嘗試使用OpenSubKey(name, true)。在這個代碼中,true意味着我需要對密鑰的寫入權限。欲瞭解更多信息,請查看MSDN link

+0

哦!對,謝謝先生! –

+0

您可以通過解釋爲什麼'OpenSubKey(name,true)'起作用,並且可能爲兩個方法重載中的每一個提供了一個鏈接到MSDN頁面來改進此答案。 –