前言
最近遇到个关于注册表的神奇的事情,当使用RegCreateKeyEx+KEY_WOW64_64KEY在win7环境下写HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\123.exe时,发现结果没有达到预期:在wow6432node下没有该项。
解决思路
1、测试自己使用RegCreateKeyEx+KEY_WOW64_64KEY是否错误:即用该函数写HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\APP1\123.exe,发现结果达到预期:在wow6432node下面没有该项。
2、百度搜索App Paths注册表项的作用
3、问老大,发现有点懵,然后决定从最基础的了解,即windows是怎么玩注册表的?接着就解决了我的问题。
正文
1、注册表知识点
参考文章:https://www.onthink.com/2014/07/06/32bit-64bit-registry/
msdn的解释:
重定向:https://docs.microsoft.com/zh-cn/windows/win32/winprog64/registry-redirector?redirectedfrom=MSDN
反射:https://docs.microsoft.com/zh-cn/windows/win32/winprog64/registry-reflection?redirectedfrom=MSDN
注册表项采用何种方式供32位和64位使用:
https://docs.microsoft.com/zh-cn/windows/win32/winprog64/shared-registry-keys
Key | Windows 7 and Windows Server 2008 R2 | Windows Server 2008, Windows Vista, Windows Server 2003, and Windows XP |
---|---|---|
HKEY_LOCAL_MACHINE | Shared | Shared |
** SOFTWARE** | Redirected | Redirected |
** Classes** | Shared | Redirected and reflected |
** Appid** | Shared | Redirected and re |