Saber en que Windows se está ejecutando tu aplicacion  

Enviado Por: Radikal (Q3 Team)
Web : http://www.q3.nu
Email: radikal@q3.nu
Fecha: 18/01/00

Truco accedido 70 veces

 


Usaremos la función del Api GetVersionEx

Pon esto en el OnClick de un TButton:


 procedure TForm1.Button1Click(Sender: TObject);

   function QueWindows:String;
   var
      Version:TOsVersionInfo;
   begin
     Version.dwOSVersionInfoSize:=SizeOf(Version);
     GetVersionex(Version);
     Case Version.dwPlatformId of
       VER_PLATFORM_WIN32s:
         Result:='Win311';
       VER_PLATFORM_WIN32_WINDOWS:
         Result:='Win9X';
       VER_PLATFORM_WIN32_NT:
           Result:='WinNT';
     end;
   end;
 begin
   Form1.Caption:=QueWindows;
 end;





Sin reinventar la rueda... O:)


Simplemente usando la variable de Delphi 'Win32Platform'

Ejemplo:

  • Añade 'SysUtils' en el uses de tu form


     procedure TForm1.Button1Click(Sender: TObject);
    
       function QueWindows:string;
       begin
         case Win32Platform of
           VER_PLATFORM_WIN32s:
             Result:='Win311';
           VER_PLATFORM_WIN32_WINDOWS:
             Result:='Win9X';
           VER_PLATFORM_WIN32_NT:
               Result:='WinNT';
         end;
       end;
    
     begin
       Caption:=QueWindows;
     end;
    




    Actualización enviada por: Jose A. García (PICKMIX@teleline.es)

    A este truco se le puede sacar un poco mas de jugo si le añadimos la versión de la plataforma:


     procedure TForm1.Button1Click(Sender: TObject);
     function QueWindows:string;
      var Plataforma:string;
          Version:integer;
       begin
         Version:=0;
         case Win32Platform of
           VER_PLATFORM_WIN32s:
             begin
               Result:='Plataforma: Win311 Versión: ' +
               IntTostr(Win32MajorVersion)+'.' +
               IntToStr(Win32MinorVersion);
               exit;
             end;
           VER_PLATFORM_WIN32_WINDOWS:
            begin
             Plataforma:='Plataforma: Win9X Versión: ';
             Version:=Win32BuildNumber and $0000FFFF;
            end;
           VER_PLATFORM_WIN32_NT:
            begin
             Plataforma:='Plataforma: WinNT Versión: ';
             Version:=Win32BuildNumber;
            end;
         end;
    
           if Win32CSDVersion = '' then
             Result:= Plataforma+IntTostr( Win32MajorVersion)+
                      '.'+
                      IntTostr( Win32MinorVersion)+
                      '.'+
                      IntTostr(Version)
            else
             Result:= Plataforma+IntTostr( Win32MajorVersion)+
                      '.'+
                      IntTostr( Win32MinorVersion)+
                      '.'+
                      IntTostr(Version)+
                      ' '+
                      Win32CSDVersion;
       end;
     begin
       Caption:=QueWindows;
     end;
    






    Actualizado el 20/11/99
    Debido a reinvención de rueda...


    Actualizado el 18/01/2000
    Debido al envío de Jose A. García