首页 >后端开发 >C++ >如何修复 Windows 中修改 HKEY_CLASSES_ROOT 时出现'不允许请求的注册表访问”错误?

如何修复 Windows 中修改 HKEY_CLASSES_ROOT 时出现'不允许请求的注册表访问”错误?

Mary-Kate Olsen
Mary-Kate Olsen原创
2024-12-29 02:32:10189浏览

How to Fix

UAC 对注册表修改的支持

在 XP 以外的 Windows 版本(例如 Windows 7、Vista)中的 HKEY_CLASSES_ROOT 配置单元下执行注册表修改时,和2008年相比,用户可能会遇到“不允许请求的注册表访问”错误。此错误源于这些操作系统中引入的用户帐户控制 (UAC),它通过要求提升权限来对系统级更改实施更严格的安全措施。

为了确保对注册表修改提供适当的 UAC 支持,需要需要将以下元素添加到您的应用程序清单文件 (.manifest) 中:

<?xml version="1.0" encoding="utf-8"?>
<asmv1:assembly manifestVersion="1.0" xmlns="urn:schemas-microsoft-com:asm.v1" xmlns:asmv1="urn:schemas-microsoft-com:asm.v1" xmlns:asmv2="urn:schemas-microsoft-com:asm.v2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
   <assemblyIdentity version="1.0.0.0" name="MyApplication.app" />
   <trustInfo xmlns="urn:schemas-microsoft-com:asm.v2">
      <security>
         <requestedPrivileges xmlns="urn:schemas-microsoft-com:asm.v3">
            <requestedExecutionLevel level="requireAdministrator" uiAccess="false" />
         </requestedPrivileges>
      </security>
   </trustInfo>
</asmv1:assembly>

部分指定应用程序所需的执行级别,在本例中为“requireAdministrator”。此级别表示应用程序需要以管理权限运行才能访问受保护的注册表项。

通过合并此清单修改,您的应用程序将正确处理 UAC 提升,并允许您在 Windows 版本中的 HKEY_CLASSES_ROOT 下进行注册表修改启用 UAC。

以上是如何修复 Windows 中修改 HKEY_CLASSES_ROOT 时出现'不允许请求的注册表访问”错误?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn