Ver Mensaje Individual
  #1  
Antiguo 03-06-2008
Avatar de Black_Ocean
Black_Ocean Black_Ocean is offline
Miembro
 
Registrado: nov 2006
Posts: 128
Reputación: 18
Black_Ocean Va por buen camino
Detectar el S.O en el cual se está ejecutando nuestra aplicación

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
Responder Con Cita