我需要从我的应用程序中读取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
。
答案 0 :(得分:1)
我对我的误解表示歉意。实际上我必须在KEY_WOW64_32KEY
中使用KEY_WOW64_64KEY
标志而不是RegOpenKeyExW(HKEY_LOCAL_MACHINE, strTmp.c_str(), 0, KEY_READ | KEY_WOW64_32KEY, &hKey))
才能使我的应用程序正常运行。感谢Mohamad Elghawi。