我需要从我的应用程序读取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
的方法。我确实通过了1,2链接,但这并没有帮助我,
最佳答案
对于我的误会,我深表歉意。实际上,我必须使用KEY_WOW64_32KEY
标志而不是KEY_WOW64_64KEY
中的RegOpenKeyExW(HKEY_LOCAL_MACHINE, strTmp.c_str(), 0, KEY_READ | KEY_WOW64_32KEY, &hKey))
来使我的应用程序正常工作。感谢Mohamad Elghawi。