HKEY_LOCAL_MACHINE的RegOpenKeyExW在Windows Embedded 7 64位上返回2

时间:2015-10-30 09:05:15

标签: c++ registry windows-7-x64 windows-7-embedded

我需要从我的应用程序中读取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链接,但这对我没有帮助,

1 个答案:

答案 0 :(得分:1)

我对我的误解表示歉意。实际上我必须在KEY_WOW64_32KEY中使用KEY_WOW64_64KEY标志而不是RegOpenKeyExW(HKEY_LOCAL_MACHINE, strTmp.c_str(), 0, KEY_READ | KEY_WOW64_32KEY, &hKey))才能使我的应用程序正常运行。感谢Mohamad Elghawi。