RegOpenKeyExW with HKEY_LOCAL_MACHINE returns 2 on Windows Embedded 7 64 位

RegOpenKeyExW with HKEY_LOCAL_MACHINE returns 2 on Windows Embedded 7 64 bit

我需要从我的应用程序中读取 HKEY_LOCAL_MACHINE\SOFTWARE 中的键值。我使用以下代码片段来执行此操作,但它总是 returns 2.

std::wstring strTmp;
strTmp = L"SOFTWARE\TEMP";
RegOpenKeyExW(HKEY_LOCAL_MACHINE, strTmp.c_str(), 0, KEY_READ, &hKey))

但是当我使用 HKEY_CURRENT_USER 时,我能够从 HKEY_CURRENT_USER\SOFTWARE 成功读取信息。我了解我的应用程序由于访问权限无法读取 HKEY_LOCAL_MACHINE。我 运行 我的应用程序具有管理员权限(使用 运行 As),但这并没有帮助我。

谁能告诉我如何使用 RegOpenKeyExW.

访问 HKEY_LOCAL_MACHINE

我确实浏览了链接 1, 2 但这对我没有帮助,

对于我的误解,我深表歉意。实际上,我不得不在 RegOpenKeyExW(HKEY_LOCAL_MACHINE, strTmp.c_str(), 0, KEY_READ | KEY_WOW64_32KEY, &hKey)) 中使用 KEY_WOW64_32KEY 标志而不是 KEY_WOW64_64KEY 来让我的应用程序正常工作。感谢 Mohamad Elghawi。