Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/126.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 使用RegCreateKeyEx写入windows 8 hklm注册表位置_C++_Windows_Windows 8_Wix_Registry - Fatal编程技术网

C++ 使用RegCreateKeyEx写入windows 8 hklm注册表位置

C++ 使用RegCreateKeyEx写入windows 8 hklm注册表位置,c++,windows,windows-8,wix,registry,C++,Windows,Windows 8,Wix,Registry,打电话时: ::RegCreateKeyEx( HKEY_LOCAL_MACHINE, "SOFTWARE\\xxx\yyy, 0, NULL, REG_OPTION_NON_VOLATILE, KEY_ALL_ACCESS, NULL, &hKey,

打电话时:

::RegCreateKeyEx( HKEY_LOCAL_MACHINE,
                "SOFTWARE\\xxx\yyy,
                0,
                NULL,
                REG_OPTION_NON_VOLATILE,
                KEY_ALL_ACCESS,
                NULL,
                &hKey,
                &dwDisposition) 
返回错误5(“拒绝访问”)。这只发生在windows 8上。在windows 7和所有其他系统上,我正在成功写入此位置。我尝试将KEY_WOW64_32KEY | REG_OPTION_设置为非易失性,但随后出现错误57

我不能告诉我的用户让我的应用程序以管理员的身份运行。有没有其他方法可以访问此位置的读/写权限


编辑:Uac已关闭。我的安装程序如何创建密钥,以便从非提升程序访问该密钥。我正在使用wix创建安装程序。

这是正常的,除非程序运行提升程序,否则您无法访问HKLM。您需要提供清单以启用Uac提示,或者让安装程序创建密钥,以便访问可以从非提升程序中删除。请改用HKCU。如果您不能遵循Hans的建议,则需要将选项保存到其他位置。请查看Environment::GetFolderPath()和Environment::SpecialFolders--有许多不同用途的特殊文件夹。我通常使用的是CommonApplicationData(共享应用程序配置)、个人(用于用户文档)和应用程序数据(用于用户设置)