Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   API de Windows (https://www.clubdelphi.com/foros/forumdisplay.php?f=7)
-   -   ¿Como saber que mi programa esta corriendo sobre Windows Vista? (https://www.clubdelphi.com/foros/showthread.php?t=48336)

xander 21-09-2007 21:14:05

¿Como saber que mi programa esta corriendo sobre Windows Vista?
 
Pues eso...

Cual sería una forma práctica de saber que mi aplicación esta corriendo sobre windows Vista y que no de bateos cuando corra sobre alguna versión diferente de Windows???

'Chas Gracias!

dec 21-09-2007 22:12:42

Hola,

Puedes adaptarlo a tus necesidades... si es que ves que puede serte útil algo así, claro está:

Código Delphi [-]
const
  WIN_31    = 'Win31';
  WIN_95    = 'Win95';
  WIN_98    = 'Win98';
  WIN_ME    = 'WinME';
  WIN_NT3   = 'WinNT3';
  WIN_NT4   = 'WinNT4';
  WIN_2K    = 'Win2K';
  WIN_XP    = 'WinXP';
  WIN_VISTA = 'WinVista';
  WIN_DESC  = 'WinDesconocido';
  
{ Basada en la función GetOperatingSystem() de la unidad
   "utils.pas" del proyecto GPU - http://gpu.sourceforge.net/
}
function VersionWindows(): string;
var
  OSVer: TOSVersionInfo;
  Major, Minor: cardinal;
begin
  result := WIN_DESC;
  OSVer.dwOSVersionInfoSize := SizeOf(TOSVersionInfo);
  if GetVersionEx(OSVer) then
  begin
    Major := OSVer.dwMajorVersion;
    Minor := OSVer.dwMinorVersion;
    case OSVer.dwPlatformId of
      VER_PLATFORM_WIN32S: Result := WIN_31;
      VER_PLATFORM_WIN32_WINDOWS:
      begin
        case Minor of
          0..3: result := WIN_95;
          10: result   := WIN_98;
          90: result   := WIN_ME;
        end;
      end;
      VER_PLATFORM_WIN32_NT:
      begin
        case Major of
          3: result := WIN_NT3;
          4: result := WIN_NT4;
          5:
          begin
            case Minor of
              0: result := WIN_2K;
              1: result := WIN_XP;
            end;
          end;
          6: result := WIN_VISTA;
        end;
      end;
    end;
  end;
end;

cHackAll 21-09-2007 23:47:36

Creo que con un "if Byte(GetVersion) = 6 then" es suficiente

Saludos

xander 22-09-2007 00:25:40

Gracias Señores... eso es lo que buscaba...

larga vida a ambos :D


La franja horaria es GMT +2. Ahora son las 01:56:52.

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