注册表操作函数RegOpenKeyEx在win7 64下返回的值不正确。 RegSetValueEx 在win7 64下返回的值不正确,第四个参数加上KEY_WOW64_64KEY也不行。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 2、程序编写编程过程中,可以使用KEY_WOW64_64KEY和KEY_WOW64_32KEY明确的指定操作64位注册表项或者32位注册表项。例如,在32bit子系统应用程序中,可以用如下方式明确指定访问64bit注册表项,程序代码:::RegOpenKeyEx(HKEY_LOCAL_MACHINE, _T("Software\\Sobey\\MPC "), 0, KEY_ALL_ACCESS | KEY_WOW64_64KEY, &hKey)注意关键字KEY_WOW64_64KEY;这种方式写入的注册表项将会确切的位于位置:HKEY_LOCAL_MACHINE\SOFTWARE\Sobey\MPC(使用regedit工具软件对应的位置)。在64bit子系统应用程序中,可以用如下方式明确指定访问32bit注册表项,程序代码:::RegOpenKeyEx(HKEY_LOCAL_MACHINE, _T("Software\\Sobey\\MPC\\Test"), 0, KEY_ALL_ACCESS | KEY_WOW64_32KEY, &hKey)注意关键字KEY_WOW64_32KEY这种方式写入的注册表项将会确切的位于位置:HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Sobey\MPC(使用regedit工具软件对应的位置)。 3、特别提醒上述说明只针对HKEY_LOCAL_MACHINE主键而言,HKEY_CURRENT_USER主键下没有类似情况;当访问HKEY_CURRENT_USER主键时,明确指定KEY_WOW64_64KEY和KEY_WOW64_32KEY标志也没有意义。总之,尽可能使用HKEY_CURRENT_USER主键来保存用户配置吧。----------------------------------------------------网上找的,我没有安装64系统,不知道有没有用 win7 64下默认权限是不对普通进程公开的,如果不是以管理员方式运行的进程,则只能读取 local_machine 而不能写入,你可以先设置下你要写入的位置的安全属性试试。在子键上右击->权限 没玩过64位的系统,32位下RegSetValuseEx的写法:DWORD value =1;RegSetValueEx(key,"valueName",0,REG_DWORD,(BYTE*)&value,sizeof(DWORD));64位下第4个参数加上KEY_WOW64_64KEY应该没错,LZ字段长度是否书写正确? win7 的问题不一般?! 写个manifest提升管理员权限应该就OK了 在win7 下操作注册表确实不像xp下简单,我在xp 下编的, 在win7下根本没反应 如何获取编辑框控件中的数值 扫描器的实现原理是什么? 如何用vC写按键精灵的汇编插件? 高分求教 如何更改位图保存程序?急急急!!! 有什么函数可以得到一个COLORREF变量的R,G,B,分量值? 关于CMSFlexGrid的问题 怎么在OnDraw中获取失效矩形的大小 请教CListView的用法 MFC控件的重绘:请教下大神,可以给个MFC控件重绘的实例不?最好是完整代码,百度上讲的过程不是很清楚的说,在下是纯小白的,谢谢大神! 菜鸟挥泪求助啊,大侠们留个脚步啊 VS2008创建对话框,怎么让它不显示在父窗口中
编程过程中,可以使用KEY_WOW64_64KEY和KEY_WOW64_32KEY明确的指定操作64位注册表项或者32位注册表项。例如,
在32bit子系统应用程序中,可以用如下方式明确指定访问64bit注册表项,程序代码:
::RegOpenKeyEx(HKEY_LOCAL_MACHINE, _T("Software\\Sobey\\MPC "), 0, KEY_ALL_ACCESS | KEY_WOW64_64KEY, &hKey)
注意关键字KEY_WOW64_64KEY;
这种方式写入的注册表项将会确切的位于位置:HKEY_LOCAL_MACHINE\SOFTWARE\Sobey\MPC(使用regedit工具软件对应的位置)。
在64bit子系统应用程序中,可以用如下方式明确指定访问32bit注册表项,程序代码:
::RegOpenKeyEx(HKEY_LOCAL_MACHINE, _T("Software\\Sobey\\MPC\\Test"), 0, KEY_ALL_ACCESS | KEY_WOW64_32KEY, &hKey)
注意关键字KEY_WOW64_32KEY
这种方式写入的注册表项将会确切的位于位置:HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Sobey\MPC(使用regedit工具软件对应的位置)。
3、特别提醒
上述说明只针对HKEY_LOCAL_MACHINE主键而言,HKEY_CURRENT_USER主键下没有类似情况;当访问HKEY_CURRENT_USER主键时,明确指定KEY_WOW64_64KEY和KEY_WOW64_32KEY标志也没有意义。
总之,尽可能使用HKEY_CURRENT_USER主键来保存用户配置吧。
----------------------------------------------------
网上找的,我没有安装64系统,不知道有没有用
在子键上右击->权限
DWORD value =1;
RegSetValueEx(key,"valueName",0,REG_DWORD,(BYTE*)&value,sizeof(DWORD));
64位下第4个参数加上KEY_WOW64_64KEY应该没错,LZ字段长度是否书写正确?