我正在尝试在以下位置创建注册表项,但出现访问被拒绝错误:
HKEY_LOCAL_MACHINE \ SOFTWARE \ MyCompany \ MyProgram
这是代码:
RegistryKey reg;
reg = Registry.LocalMachine.CreateSubKey(@"SOFTWARE\MyCompany\MyProgram");
最佳答案
您最有可能使用User Account Control (UAC)。这意味着,即使您是管理员,您的访问令牌也没有执行诸如在HKEY_LOCAL_MACHINE
中创建注册表项之类的权限。
但是,通过查看UAC提示,您可以提升特权。
Regedit包含一个UAC manifest,它将在执行之前引发提示,以确保它可以执行需要执行的操作。您也可以右键单击可执行文件或快捷方式,然后选择“以管理员身份运行”。
因此,从本质上讲,您有三种选择:
关闭UAC
使用以管理员身份运行
在可执行文件中包含UAC清单
第一个解决方案的安全性较差,最后一个解决方案是最优雅的(但实际上还需要一些努力)。
关于c# - 在C#中创建注册表项时访问被拒绝,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10151771/