C ++ функция RegGetValue не возвращает правильную версию ОС Windows

Я использую приведенный ниже код в консольном приложении, чтобы получить версию моей ОС Windows:

#include <string>
#include <iostream>
#include <Windows.h>

int main()
{
DWORD dataSize = 0;
char buffer[256];
dataSize = sizeof(buffer);

RegGetValueA(HKEY_LOCAL_MACHINE, "SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion",
"ProductName", RRF_RT_REG_SZ, 0, &buffer, &dataSize);

cout << buffer << endl;
return 0;
}

У меня установлена ​​Windows 10 Pro, но функция возвращает Windows 10 Enterprise. Я даже вручную перешел с помощью regedit к указанному ключу, и в разделе «Название продукта» я вижу Windows 10 Pro. Вот изображение моего regedit.

Я запустил другую функцию RtlGetProductInfo(10, 0, 0, 0, f); и он вернул значение 0x48 для f, который в соответствии с Microsoft У меня Windows 10 Enterprise Evaluation.

Теперь, в этот момент, я понимаю, что что-то не так с моей установкой Windows, но почему мой первый код возвращает другое значение, чем то, что отображается для "ProductName" в моем редакторе реестра?

Редактировать: Я должен добавить, что я запустил код на другом ПК с Windows, и он возвращает правильную версию на этом компьютере.

1

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]