先看一個有錯誤的代碼:
string subKeyName = @"Software\Microsoft\Windows\CurrentVersion\Run\"; //subkey name
string valueName = @"App Name"; //name of the more specific key that will hold the value, "" means (Default)
try
...{
RegistryKey reg = Registry.LocalMachine.OpenSubKey(subKeyName);
if (reg != null)
...{
reg.DeleteValue(valueName);
reg.Close();
}
}
catch (Exception ex)
...{
MessageBox.Show(this, ex.ToString());
}
執行這段代碼,你可以會收到以下異常:
System.UnauthorizedAccessException
原因很簡單:
RegistryKey.OpenSubKey (String) 以只讀方式檢索子項
public RegistryKey OpenSubKey ( string name, bool writable)writable如果需要項的寫訪問權限,則設置為 true。
我們需要帶第二個參數,標示我們是可寫方式打開的。