注册表中有一个键:
HKEY_CURRENT_USER\Software\Posix\NetStat
并且密钥有一个值
REG_SZ
带值的下载类型done
我正在尝试计算它的价值。什么都没有出来。
#include <windows.h>
#include <iostream>
#include <string>
using namespace std;
int main() {
char buf[1024];
HKEY hKey = HKEY_CURRENT_USER;
ULONG result;
DWORD sz = 1024;
// open section and get hKey handler
result = RegOpenKeyExA(
hKey,
"Software\\Posix\\NetStat",
0,
REG_SZ,
&hKey);
if (result != ERROR_SUCCESS) {
cout << "Can't open section" << endl;
RegCloseKey(hKey);
}
// get desired value
result = RegGetValueA(
hKey,
"Software\\Posix\\NetStat",
"Downloaded",
RRF_RT_ANY,
NULL,
(LPDWORD)buf,
&sz);
if (result != ERROR_SUCCESS) {
cout << "Can't get value of Downloaded" << endl;
RegCloseKey(hKey);
}
system("pause");
return 0;
}
第一个函数result
执行后为0,即第一个函数起作用。执行第二个函数后,result
它等于 2。
#define ERROR_FILE_NOT_FOUND 2L
当然,这个函数buf
是不返回任何值的,这里是MSDN上函数描述的链接。只有那里RegGetValue()
。
https://msdn.microsoft.com/en-us/library/windows/desktop/ms724868(v=vs.85).aspx
一般来说,你的问题似乎在这里:
特别是
RegOpenKeyExA
改变 的值&hKey
。此外,RegOpenKeyExA
使用它根本没有意义,因为它只是打开注册表中的键,您需要读取值。而且,正如上面评论中提到的,文档中有一个标志RRF_SUBKEY_WOW6464KEY
。这是一个工作示例:显然
RegCloseKey
,也没有必要打电话。