Есть ключ в реестре:
HKEY_CURRENT_USER\Software\Posix\NetStat
А у ключа есть значение
Downloaded
типа 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
В общем, проблема у вас, по всей видимости, тут:
result = RegOpenKeyExA(
hKey,
"Software\\Posix\\NetStat",
0,
REG_SZ,
&hKey);
В частности RegOpenKeyExA
изменяет значение &hKey
. Более того, использовать RegOpenKeyExA
вообще не имеет смысла, так как она просто открывает ключ в реестре, а вам нужно прочитать значение. И, как писали в комментариях выше, в документации есть флаг RRF_SUBKEY_WOW6464KEY
. Вот рабочий пример:
RegGetValueA(
HKEY_CURRENT_USER,
"Software\\Posix\\NetStat",
"Downloaded",
RRF_RT_ANY | RRF_SUBKEY_WOW6464KEY,
NULL,
(LPDWORD)buf,
&sz
);
Вызывать RegCloseKey
по всей видимости, тоже не нужно.
Виртуальный выделенный сервер (VDS) становится отличным выбором
Как считать один байт из файла? Следующий код работает, но некоторые байты пропускаются (0x09, 0x0a, 0x0b, 0x0c, 0x0d) и считывается следующий за ними...
Мне нужно подключить прокси с авторизацией, я только разобрался с работой selenium, думал и с этим разберусь, но ничего не выходитВроде бы как...
Обработкой картинок не занималсяЕсть картинка - на белом фоне синие точки