您的位置:首页 > 其它

32位程序操作64位系统注册表,控制转向问题

2018-01-29 12:33 381 查看
网上有很多关于 32 位程序操作 64 位系统的文章,都是用 Wow64DisableWow64FsRedirection 和 Wow64RevertWow64FsRedirection 来关闭打开文件系统转向。当然了,这个不好使,关闭打开的只是文件系统的转向,对于注册表操作不起作用。这个问题困扰了我好几年,从用上 Win7x64 开始就是。这几天又在网上查资料,突然发现两个常数,试了一下,有效!

' 注册表关键字安全选项...
Private Const READ_CONTROL = &H20000
Private Const KEY_QUERY_VALUE = &H1
Private Const KEY_SET_VALUE = &H2
Private Const KEY_CREATE_SUB_KEY = &H4
Private Const KEY_ENUMERATE_SUB_KEYS = &H8
Private Const KEY_NOTIFY = &H10
Private Const KEY_CREATE_LINK = &H20
Private Const KEY_READ = KEY_QUERY_VALUE + KEY_ENUMERATE_SUB_KEYS + KEY_NOTIFY + READ_CONTROL
Private Const KEY_WRITE = KEY_SET_VALUE + KEY_CREATE_SUB_KEY + READ_CONTROL
Private Const KEY_EXECUTE = KEY_READ
Private Const KEY_ALL_ACCESS = KEY_QUERY_VALUE + KEY_SET_VALUE + KEY_CREATE_SUB_KEY + KEY_ENUMERATE_SUB_KEYS + KEY_NOTIFY + KEY_CREATE_LINK + READ_CONTROL
Private Const KEY_WOW64_64KEY = &H100&
Private Const KEY_WOW64_32KEY = &H200&


对了,就是 KEY_WOW64_64KEY 和 KEY_WOW64_32KEY 这两个常量。

KEY_WOW64_64KEY 可以使 32 位程序在 64 位系统中正常操作注册表的 64 位部分。

KEY_WOW64_32KEY 则可以使 64 位程序去操作注册表的 32 位部分。

当然啦,对于 VB6 来说,KEY_WOW64_64KEY 就够用了。

举个粟子:

RegOpenKeyEx HKEY_LOCAL_MACHINE, "SOFTWARE\Microsoft\Windows\CurrentVersion\Run", 0, KEY_ALL_ACCESS Or KEY_WOW64_64KEY, hKey
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐