我需要从我的应用程序读取HKEY_LOCAL_MACHINE \ SOFTWARE中的​​键值。我使用以下代码片段来执行此操作,但它始终返回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读取。我确实以管理员权限运行了应用程序(使用运行方式),但这并没有帮助我。

有人可以阐明如何使用HKEY_LOCAL_MACHINE访问RegOpenKeyExW的方法。

我确实通过了12链接,但这并没有帮助我,

最佳答案

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

08-26 19:54