我的简化代码:
HKEY hKey;
if(someCondition)
lRes = RegOpenKeyExW(HKEY_LOCAL_MACHINE, L"SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run", 0, KEY_READ, &hKey);
else
lRes = RegOpenKeyExW(HKEY_LOCAL_MACHINE, "SOFTWARW\\Wow6432Node\\Microsoft\\Windows\\CurrentVersion\\Run", 0, KEY_READ, &hKey);
if(lRes == ERROR_SUCCESS)
{
std::wstring strKeyValue;
lRes = GetStringRegKey(hKey, L"valueName", strKeyValue, L"bad");
if(lRes == ERROR_SUCCESS)
{
//doSomething
}
}
两者都RegOpenKeyExW()
返回ERROR_SUCCESS
,但在一种情况下(从 读取Wow6432Node
)GetStringRegKey()
返回ERROR_SUCCESS
并初始化 ,strKeyValue
而在另一种情况下则返回ERROR_FILE_NOT_FOUND
。所有路径和值名称都是正确的。这些条目是手动添加到注册表中的。
问题是什么?是任何凭据问题吗?谢谢!