RegCreateEx 返回 5 Windows 7 上的访问被拒绝
我有一个使用 API RegCreateKeyEx 的程序,并且在 WinXP 和 Vista 上运行得非常好。
程序通常以提升的权限启动。 当我尝试在 Windows 7 中使用相同的程序时,RegCreateKeyEx API 返回 5(访问被拒绝)。
知道如何解决这个问题吗?
I have one program that uses API RegCreateKeyEx and that works perfectly fine on WinXP and Vista.
Program is generally launched in elevated privileges .
When I try to use same program in Windows 7 , RegCreateKeyEx API is returning 5 (access denied).
Any idea how to resolve this?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
当您尝试在注册表中没有写入权限的部分创建密钥时,会出现此错误。在 Windows 7 上,这基本上无处不在。
为了提高 XP/7 之间 32 位应用程序的兼容性,建议您在注册表的 32 位视图中创建该注册表项。修改您的调用以包含掩码
KEY_WOW64_32KEY
,以便它使用 32 位视图:然后首先在注册表中的
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Foo
下手动创建密钥。编辑权限并给予您自己(或每个人)完全控制权。您现在应该能够从 32 位应用程序访问密钥。
This error occurs when you're trying to create a key in a portion of the registry where you don't have write access. On Windows 7, this is basically everywhere.
To increase compatibility of 32 bit applications between XP/7 it's suggested you create the key in the 32 bit view of the registry. Modify your call to include the mask
KEY_WOW64_32KEY
so it uses the 32 bit view:Then create the key first in the registry manually under
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Foo
. Edit the permissions and give yourself (or everyone) Full Control.You should now be able to access the key from a 32 bit application.