首页 > 解决方案 > C# 授予注册表权限

问题描述

我在Form1_Load修改注册表值的代码上做了。但是当我打开编译的 Form1 时,我得到“拒绝访问注册表项”错误。我怎样才能Form1_Load在指定位置获得许可?位置是HKEY_LOCAL_MACHINE\SOFTWARE\Classes\AppID\{CDCBCFCA-3CDC-436f-A4E2-0E02075250C2}。我还尝试以管理员身份运行 Form1。也许我错过了一些特权来做到这一点。我可以使用属性等手动更改注册表中的权限,但是如何更改权限以使用代码修改所选位置?代码是

        RegistryKey key;
        key = Registry.LocalMachine.CreateSubKey(@"SOFTWARE\Classes\AppID\{CDCBCFCA-3CDC-436f-A4E2-0E02075250C2}");
        key.SetValue("RunAs", "Interactive User");

标签: c#registry

解决方案


    RegistryKey key = RegistryKey.OpenBaseKey(RegistryHive.LocalMachine,RegistryView.Registry64).CreateSubKey(@"SOFTWARE\Classes\AppID\{CDCBCFCA-3CDC-436f-A4E2-0E02075250C2}", true);
    key.SetValue("RunAs", "Interactive User");

并确保您的程序在您的应用清单中具有 requireAdministrator 权限。


推荐阅读