uses Winapi.Windows, Winapi.ShlObj, System.SysUtils, System.StrUtils, System.Classes, System.Win.Registry;
// _OSVERSIONINFOEX = record
// dwOSVersionInfoSize : DWORD;
// dwMajorVersion : DWORD;
// dwMinorVersion : DWORD;
// dwBuildNumber : DWORD;
// szCSDVersion : array[0..127] of AnsiChar;
// wServicePackMajor : WORD;
// wServicePackMinor : WORD;
//TOSVERSIONINFOEX = _OSVERSIONINFOEX;
// function GetVersionExA(var lpVersionInformation: TOSVersionInfoEX): BOOL;
// stdcall; external kernel32;
VER_NT_WORKSTATION :Integer = 1;
VER_SUITE_ENTERPRISE :Integer = 2;
VER_NT_SERVER :Integer = 3;
VER_SUITE_DATACENTER :Integer = 128;
VER_SUITE_PERSONAL :Integer = 512;
PRODUCT_BUSINESS = $00000006; {Business Edition}
PRODUCT_BUSINESS_N = $00000010; {Business Edition}
PRODUCT_CLUSTER_SERVER = $00000012; {Cluster Server Edition}
PRODUCT_DATACENTER_SERVER = $00000008; {Server Datacenter Edition
PRODUCT_DATACENTER_SERVER_CORE = $0000000C; {Server Datacenter Edition
PRODUCT_ENTERPRISE = $00000004; {Enterprise Edition}
PRODUCT_ENTERPRISE_N = $0000001B; {Enterprise Edition}