c# - 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");
解决方案
RegistryKey key = RegistryKey.OpenBaseKey(RegistryHive.LocalMachine,RegistryView.Registry64).CreateSubKey(@"SOFTWARE\Classes\AppID\{CDCBCFCA-3CDC-436f-A4E2-0E02075250C2}", true);
key.SetValue("RunAs", "Interactive User");
并确保您的程序在您的应用清单中具有 requireAdministrator 权限。
推荐阅读
- javascript - 如何使用 AWS Javascript SDK 从 AWS S3 存储桶中检索对象列表(包括与每个对象关联的元数据)?
- java - 无法在 AlertDialog 内创建 RecyclerView,Alert Dialog 内的内容为空白
- java - 如何使用快捷方式打开特定活动?
- javascript - 如何使用 html 链接调用外部 js?
- vuejs2 - 使用带有 axios 的 Vuejs 进行过滤
- oracle - Oracle:在批量收集期间检测类型构造函数中的异常
- tensorflow.js - 如何在 tensorflow.js 中实现 get_tensor_by_name 和预测
- c# - 关于sql-server中批量插入的咨询
- ios - Cocoapods 错误:无法加载此类文件——macho
- javascript - 如何使用threejs为gltf模型制作动画