Program sprawdzający wersję Windowsa oraz czy system został aktywowany

0

Dzień dobry.
Mam takie pytanie jak mogę zrobić program w konsoli który czyta jaki mamy windows i czy jest aktywny system.

Z góry dzięki

1

Sprawdzenie wersji Windowsa - https://docs.microsoft.com/pl-pl/windows/win32/api/sysinfoapi/nf-sysinfoapi-getversionexa?redirectedfrom=MSDN (to do wersji 8.1) lub w nowszych https://docs.microsoft.com/pl-pl/windows/win32/sysinfo/version-helper-apis

Sprawdzenie aktywacji - https://stackoverflow.com/questions/43483541/programmatically-check-if-windows-is-activated-with-c , przy czym to nie działa na bardzo starych Windowsach (czyli XP), dopiero od Vista w górę.

0

Kod sprawdzający aktywacje nie trybi dla mnie
https://imgur.com/a/bib2aF0

1

Tak na szybko - na dole podanego linku do SO jest Link against: librpcrt4.a and libslwga.a - może to będzie jakaś wskazówka ;)

0

Dzięki wielkie działa :D

1
/*
 
Żeby działało dodaj te pliki :
- librpcrt4.a
- libslwga.a
 
https://mega.nz/#!d5wV2S6I!JnuKFcrqoO-BOMpA2pJL_LQy1ep_K9tims_81zsSobo
 
*/
 
#define _WIN32_WINNT 0x600
 
#include <iostream>
#include <windows.h>
#include <slpublic.h>
 
using namespace std;
 
bool isGenuineWindows(void)
{
    //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()
{
    cout << isGenuineWindows();
    return 0;
}

1 użytkowników online, w tym zalogowanych: 0, gości: 1