版权声明:转载请注明出处 https://blog.csdn.net/geol200709/article/details/89309500
用C#写了一个桌面应用(WinForm),由于win7的机子挂掉,换了一台新的机子,win10系统。
启动的时候,报了一个错:不允许所请求的注册表访问权
//系统注册表信息
var mreg = Registry.LocalMachine;
//IE注册表信息
var ie = mreg.OpenSubKey(@"SOFTWARE\Microsoft\Internet Explorer\MAIN\FeatureControl\FEATURE_BROWSER_EMULATION", RegistryKeyPermissionCheck.ReadWriteSubTree);
搜索一波,找到靠谱的解决方案:
将原来的那一句
var mreg = Registry.LocalMachine;
改成:
var mreg = Registry.CurrentUser;
完美解释:一般在win7下,VS访问注册表HKEY_LOCAL_MACHINE,即程序中的LocalMachine是使用管理员身份运行的,之前的win7是属于默认管理员权限运行,而win10则不会自动获取管理员权限的。但是访问HKEY_CURRENT_USER是没问题的