Программно проверить, активирована ли Windows с переполнением стека

Я пытаюсь написать функцию C ++, которая сообщит пользователю, активирована ли операционная система Windows, которую они используют в настоящее время.

Я нашел похожий вопрос Программно проверить, активирована ли Windows 7 , но этот ответ требует аргумента UID. Я не хочу, чтобы пользователь вообще вводил ЛЮБЫЕ аргументы.

Как программно проверить, активирована ли Windows с C ++?

0

Решение

#define _WIN32_WINNT 0x600

#include <iostream>
#include <windows.h>
#include <slpublic.h>/*'
From: C:/Windows/System32/SLMGR.vbs' Copyright (c) Microsoft Corporation. All rights reserved.
'
' Windows Software Licensing Management Tool.
'
' Script Name: slmgr.vbs
'
' WMI class names
private const ServiceClass                            = "SoftwareLicensingService"private const ProductClass                            = "SoftwareLicensingProduct"private const TkaLicenseClass                         = "SoftwareLicensingTokenActivationLicense"private const WindowsAppId                            = "55c92734-d682-4d71-983e-d6ec3f16059f"*//** Use the WindowsAppId above to check if Windows OS itself is Genuine. **/
bool isGenuineWindows()
{
//WindowsAppId
unsigned char uuid_bytes[] = {0x35, 0x35, 0x63, 0x39, 0x32, 0x37, 0x33, 0x34, 0x2d, 0x64, 0x36,
0x38, 0x32, 0x2d, 0x34, 0x64, 0x37, 0x31, 0x2d, 0x39, 0x38, 0x33,
0x65, 0x2d, 0x64, 0x36, 0x65, 0x63, 0x33, 0x66, 0x31, 0x36, 0x30,
0x35, 0x39, 0x66};

GUID uuid;
SL_GENUINE_STATE state;

UuidFromStringA(uuid_bytes, &uuid);
SLIsGenuineLocal(&uuid, &state, nullptr);
return state == SL_GEN_STATE_IS_GENUINE;
}

int main()
{
std::cout<<isGenuineWindows();
return 0;
}

Ссылка против: librpcrt4.a а также libslwga.a

3

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

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

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