Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Otros temas > Trucos
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Los mejores trucos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 07-06-2006
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.119
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
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;
Responder Con Cita
  #2  
Antiguo 12-06-2006
Avatar de Bicho
[Bicho] Bicho is offline
Miembro Premium
 
Registrado: jul 2003
Ubicación: Inca - Mallorca
Posts: 1.776
Poder: 23
Bicho Va por buen camino
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;
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 00:50:40.


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
Copyright 1996-2007 Club Delphi