c#下注册表操作的一个小细节
发布时间:2016-12-28 来源:查字典编辑
摘要:先看一个有错误的代码:stringsubKeyName=@"SoftwareMicrosoftWindowsCurrentVersionRu...
先看一个有错误的代码:
stringsubKeyName=@"SoftwareMicrosoftWindowsCurrentVersionRun";//subkeyname
stringvalueName=@"AppName";//nameofthemorespecifickeythatwillholdthevalue,""means(Default)
try
...{
RegistryKeyreg=Registry.LocalMachine.OpenSubKey(subKeyName);
if(reg!=null)
...{
reg.DeleteValue(valueName);
reg.Close();
}
}
catch(Exceptionex)
...{
MessageBox.Show(this,ex.ToString());
}
执行这段代码,你可以会收到以下异常:
System.UnauthorizedAccessException
原因很简单:
RegistryKey.OpenSubKey(String)以只读方式检索子项
publicRegistryKeyOpenSubKey(stringname,boolwritable)writable如果需要项的写访问权限,则设置为true。
我们需要带第二个参数,标示我们是可写方式打开的。