RegOpenKeyEx 返回 2

RegOpenKeyEx returned 2

我的 RegOpenKeyEx() 函数有问题。

lResult = RegOpenKeyEx(HKEY_LOCAL_MACHINE, lpSubKeyName, 0, KEY_READ, &hkMon);

函数 return 错误代码 2(未找到文件),但此键存在于注册表中。 我在 Windows 7 64 位和 Windows Xp 32 位上尝试这个。

使用注册表时,您必须了解 UAC registry virtualization (VirtualStore redirection for compatibility) and WOW64 (32/64 bit separation and registry redirection/reflection)。由于这些功能,您有时会在注册表中的不同位置结束,并且它与您在 Regedit 中看到的不匹配。

在这种情况下,最好的办法是使用 Process Monitor 这样您就可以看到您真正访问的是哪个密钥...