如何修改系统拥有的注册表值
How to modify Registry Value owned by System
我正在尝试更改注册表值,结果收到了此错误代码(错误代码1:函数不正确。)。
我在里面收到这个错误代码,ModifyValue
是RegSetValueEx
的结果。该方法的定义如下:utils.h
有人能帮我吗?
我已经在GitHub上传了代码:https://github.com/mariopavlov/C/tree/master/RegistryManipulations
提前感谢您,马里奥。
Windows保护这些注册表值,因为它们的更改可能会影响(损坏)许多应用程序和子系统。代码(正确地)试图通过首先从系统获取密钥的所有权来解决这个问题,这样您就可以在不久后破坏系统。
显然你们并没有写这个代码,而是在网上的某个地方搜索了一下。问题就在应用程序中API调用的第一个:
path = L"SOFTWARE\Classes\Interface\{00020400-0000-0000-C000-000000000046}\ProxyStubClsid32\";
if (RegOpenKeyEx(HKEY_LOCAL_MACHINE, path, 0, regsam, &handleToKey))
这会失败,并且您没有打开密钥(因为尾部反斜杠过多)。您应该对照ERROR_SUCCESS
检查操作状态。当应用程序试图在followign API调用中使用零句柄时,您会得到更多的错误,并且您得到的1
对API返回代码的解释也不正确,因为您应该在那里得到6
(错误的句柄)。
修复后,您最终会修改该值,但这里的另一个提醒是,它可能会损坏相当多已安装应用程序的正常运行。
相关文章:
- 有没有任务栏API可以立即应用注册表更改
- 检查注册表项是否链接到(或副本)另一个注册表项
- 禁用地址共享注册表不起作用
- 如何从注册表项中提取配置单元和注册表名称
- 注册表正在设置 1 个字符
- 清理"QSettings"注册表项的最佳方法(Windows上的Qt 5)
- 在 c++ 中编辑注册表项
- 某些进程的注册表限制
- 在编译时生成某种子类/类型注册表?
- 如何测试注册表项是否存在?
- 注册表-获取值(而不是键)上次更改的时间和键创建日期
- 从注册表中检索已注销用户的 sid
- 如何正确检查 c++ 是否存在注册表项?
- 如何在不使用任何数据库的情况下制作动态注册表单?
- 强制资源管理器重新加载注册表值
- 以编程方式锁定注册表项以避免并发问题
- 如何应用注册表模式使"select class depend on input"遵守开放封闭原则?
- 如何恢复注册表项的有效权限?C++
- 如何防止 C API 注册表中的 Lua 回调被垃圾回收?
- 如何修改系统拥有的注册表值