Bueno... Esta unidad (unit) la hice para aportar como primer truco a ClubDelphi. Permite de forma simple detectar el S.O en el cual se ejecuta nuestra aplicación. Actualizado para Windows Vista. Cualquier aporte extra, comentarios y mejoras para el código es bienvenido :D
Código Delphi
[-]
unit WindowsVersion;
interface
type
TWindowsVersion = (wvUnknown, wv95, wv98, wvME, wvNT, wv2000, wvXP, wv2003, wvVista);
function GetWindowsVersion: TWindowsVersion;
implementation
uses
Windows;
function GetWindowsVersion: TWindowsVersion;
var
OsVerInfo: TOSVERSIONINFO;
begin
Result := wvUnknown;
ZeroMemory(@OsVerInfo, SizeOf(OsVerInfo));
OsVerInfo.dwOSVersionInfoSize := SizeOf(TOSVERSIONINFO);
GetVersionEx(OsVerInfo);
if OsVerInfo.dwPlatformId = VER_PLATFORM_WIN32_WINDOWS then
begin
if (OsVerInfo.dwMajorVersion = 4) and (OsVerInfo.dwMinorVersion = 0) then
Result := wv95
else if (OsVerInfo.dwMajorVersion = 4) and (OsVerInfo.dwMinorVersion = 10) then
Result := wv98
else if (OsVerInfo.dwmajorVersion = 4) and (OsVerInfo.dwminorVersion = 90) then
Result := wvME
end
else if OsVerInfo.dwPlatformId = VER_PLATFORM_WIN32_NT then
begin
if (OsVerInfo.dwMajorVersion <= 4) then
Result := wvNT
else if (OsVerInfo.dwMajorVersion = 5) and (OsVerInfo.dwMinorVersion = 0) then
Result := wv2000
else if (OsVerInfo.dwMajorVersion = 5) and (OsVerInfo.dwMinorVersion = 1) then
Result := wvXP
else if (OsVerInfo.dwMajorVersion = 5) and (OsVerInfo.dwMinorVersion = 2) then
Result := wv2003
else if (OsVerInfo.dwMajorVersion = 6) then
Result := wvVista;
end;
end;
end.
Saludos y buen provecho :P