Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Trucos (https://www.clubdelphi.com/foros/forumdisplay.php?f=52)
-   -   Averiguar en qué versión de Windows se ejecuta nuestro programa (https://www.clubdelphi.com/foros/showthread.php?t=80408)

dec 07-06-2006 19:22:16

Averiguar en qué versión de Windows se ejecuta nuestro programa
 
Con esta serie de funciones puede averiguarse la versión de Windows en la que nuestro programa se estuviera ejecutando:

Código Delphi [-]
function EsWindows95 : boolean;
var
  OVI: TOSVersionInfo;
begin
  Result := false;
  OVI.dwOSVersionInfoSize:=
    SizeOf(TOSVersionInfo);
  if (GetVersionEx(OVI)) then
    Result := (OVI.dwMajorVersion = 4)
      and (OVI.dwMinorVersion = 0);
end;

function EsWindows98 : boolean;
var
  OVI: TOSVersionInfo;
begin
  Result := false;
  OVI.dwOSVersionInfoSize:=
    SizeOf(TOSVersionInfo);
  if (GetVersionEx(OVI)) then
  Result := (OVI.dwMajorVersion = 4)
    and (OVI.dwMinorVersion = 10) and
      not (OVI.szCSDVersion[1] = 'A');
end;

function EsWindows98SE : boolean;
var
  OVI: TOSVersionInfo;
begin
  Result := false;
  OVI.dwOSVersionInfoSize:=
    SizeOf(TOSVersionInfo);
  if (GetVersionEx(OVI)) then
  Result := (OVI.dwMajorVersion = 4)
    and (OVI.dwMinorVersion = 10) and
      (OVI.szCSDVersion[1] = 'A');
end;

function EsWindowsME : boolean;
var
  OVI: TOSVersionInfo;
begin
  Result := false;
  OVI.dwOSVersionInfoSize:=
    SizeOf(TOSVersionInfo);
  if (GetVersionEx(OVI)) then
    Result := (OVI.dwMajorVersion = 4)
      and (OVI.dwMinorVersion = 90);
end;

function EsWindowsNT : boolean;
var
  OVI: TOSVersionInfo;
begin
  Result := false;
  OVI.dwOSVersionInfoSize:=
    SizeOf(TOSVersionInfo);
  if (GetVersionEx(OVI)) then
    Result := (OVI.dwMajorVersion < 4);
end;

function EsWindows2000 : boolean;
var
  OVI: TOSVersionInfo;
begin
  Result := false;
  OVI.dwOSVersionInfoSize:=
    SizeOf(TOSVersionInfo);
  if (GetVersionEx(OVI)) then
    Result := (OVI.dwMajorVersion = 5)
      and (OVI.dwMinorVersion = 0);
end;

function EsWindowsXp : boolean;
var
  OVI: TOSVersionInfo;
begin
  Result := false;
  OVI.dwOSVersionInfoSize:=
    SizeOf(TOSVersionInfo);
  if (GetVersionEx(OVI)) then
    Result := (OVI.dwMajorVersion = 5)
      and (OVI.dwMinorVersion = 1);
end;

Bicho 12-06-2006 12:28:16

Yo tengo lo mismo pero sin tener que preguntar cada vez, si la versión es XP, es tal o cual, las dos funciones te devuelven la version de Windows que tengas

Código Delphi [-]
(*** Devuelve la versión de Windows **********)
function GetOSVersion : Integer;
var
  osVerInfo : TOSVersionInfo;
  majorVer, minorVer : Integer;
begin
  osVerInfo.dwOSVersionInfoSize := SizeOf( TOSVersionInfo );
  if ( GetVersionEx( osVerInfo ) ) then begin
    majorVer := osVerInfo.dwMajorVersion;
    minorVer := osVerInfo.dwMinorVersion;
    case ( osVerInfo.dwPlatformId ) of
      VER_PLATFORM_WIN32_NT : { Windows NT/2000/XP }  begin
        if ( majorVer <= 4 ) then Result := cOsWinNT
        else
          if ( ( majorVer = 5 ) and ( minorVer= 0 ) ) then Result := cOsWin2000
          else
           if ( ( majorVer = 5) and ( minorVer = 1 ) ) then Result := cOsWinXP
           else                                             Result := cOsUnknown;
      end;
      VER_PLATFORM_WIN32_WINDOWS : { Windows 9x/ME } begin
        if ( ( majorVer = 4 ) and ( minorVer = 0 ) ) then Result := cOsWin95
        else
          if ( ( majorVer = 4 ) and ( minorVer = 10 ) ) then begin
            if ( osVerInfo.szCSDVersion[ 1 ] = 'A' ) then Result := cOsWin98SE
            else                                          Result := cOsWin98;
          end
        else
          if ( ( majorVer = 4) and ( minorVer = 90 ) ) then Result := cOsWinME
          else                                              Result := cOsUnknown;
      end;
    else Result := cOsUnknown;
    end;
  end else Result := cOsUnknown;
end;

(*** Devuelve el nombre de la versión de Windows **********)
function GetOSName( OSCode : Integer ) : String;
begin
  if ( OSCode = cOsUnknown )      then Result := '(Desconocido)'
  else if ( OSCode = cOsWin95 )   then Result := 'Microsoft Windows 95'
  else if ( OSCode = cOsWin98 )   then Result := 'Microsoft Windows 98'
  else if ( OSCode = cOsWin98SE ) then Result := 'Microsoft Windows 98 Segunda Edicion'
  else if ( OSCode = cOsWinME )   then Result := 'Microsoft Windows Millennium Edition'
  else if ( OSCode = cOsWinNT )   then Result := 'Microsoft Windows NT'
  else if ( OSCode = cOsWin2000 ) then Result := 'Microsoft Windows 2000'
  else if ( OSCode = cOsWinXP )   then Result := 'Microsoft Windows XP'
  else                                 Result := 'Microsoft Windows';
end;


La franja horaria es GMT +2. Ahora son las 13:26:35.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi