C#授予注册表权限

时间:2020-05-13 09:23:56

标签: c# registry

我在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");

1 个答案:

答案 0 :(得分:0)

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

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