我正在64位Windows-7中编写应用程序。在注册表中,我有一个要从以下路径读取的键:
HKEY_LOCAL_MACHINE\Software\Wow6432Node\XXXX
我首先尝试使用以下代码打开该键:
RegOpenKeyEx(HKEY_LOCAL_MACHINE, Path, 0, KEY_ALL_ACCESS, &hKey)
在此之后,我能够读取这些值。这在64位Windows上运行良好,但是在32位Windows上不起作用。应该如何才能在32位Windows上读取它?
Wow6432Node
,您需要使用RegOpenKeyExW(HKEY_LOCAL_MACHINE, L"Software\\XXXX", 0, KEY_ALL_ACCESS|KEY_WOW64_32KEY, &hKey)
。 - RbMmKEY_ALL_ACCESS
。如果需要只读访问,请指定KEY_READ
,如果需要读/写,则为KEY_READ|KEY_WRITE
。如果指定了比所需权限更多的特权,可能会得到空白结果,或者强制用户始终以管理员权限运行您的程序。这是通常的安全做法,被称为“最小特权原则”。 - zett42