Get Windows OS versionTag(s): WinAPI/Registry
You can't rely on the PB Environment Object because it doesn't return enough details. For on W2K system, the Environment returns NT as the operating system. A better way is to call directly the Win API to query the OS version.
[local external function] FUNCTION ulong GetVersionExA( REF str_osversioninfo lpVersionInfo ) & LIBRARY "kernel32.dll"
[str_osversioninfo] ulong dwOSVersionInfoSize ulong dwmajorversion ulong dwminorversion ulong dwbuildnumber ulong dwplatformid CHARACTER SZCSDVERION[128]
dwMajorVersion Windows 95: 4 Windows 98 4 Windows ME 4 Windows NT 3.51 3 Windows NT 4 4 Windows 2000 5 Windows XP 5 dwMinorVersion Windows 95 0 Windows 98 10 Windows ME 90 Windows NT 3.51 51 Windows NT 4 0 Windows 2000 0 WINDOWS XP 1
To distinguish between 95 and NT, you also need to check the dwPlatformId value
VER_PLATFORM_WIN32s 0 VER_PLATFORM_WIN32_WINDOWS 1 // WIN95 VER_PLATFORM_WIN32_NT 2 // NT
and from Powerscript, for example
str_osversioninfo lstr_osver lstr_osver.dwosversioninfosize = 148 GetVersionExA( lstr_osver ) IF (lstr_osver.dwmajorversion = 5 AND lstr_osver.dwminorversion = 1) THEN MessageBox("", "Running on XP"); END IF
mail_outline
Send comment, question or suggestion to howto@rgagnon.com
Send comment, question or suggestion to howto@rgagnon.com