2010-12-16 57 views
33

我有嘗試寫入註冊表項中LOCAL_MACHINE無法寫入註冊表項,獲得UnauthorizedAccessException

的關鍵是創建一個Windows安裝程序包的一部分,一個窗口服務的控制窗口服務和一個獨立控制窗口。

控制窗口可以讀取和寫入註冊表項,但是我無法寫入註冊表項,即使我給予本地服務的完全權限。

這是拋出異常的代碼:

private void updateLocalRegistryVersion(Double newVersion) 
{ 
    RegistryKey rk = Registry.LocalMachine; 
    RegistryKey sk = rk.OpenSubKey(@"Software\CompanyName\Monitoring\Values"); 

    sk.SetValue("scriptversion", newVersion.ToString()); 
} 

有什麼建議?

回答

66

RegistryKey.OpenSubKey(string)沒有打開寫入的鑰匙。嘗試使用OpenSubKey(string, bool)重載指定您希望密鑰可寫。

+7

+1謝謝!這是一個惱人的(但明顯的)過載。有點尷尬,我錯過了... – Pwninstein 2011-03-14 22:05:56