Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Windows (https://www.clubdelphi.com/foros/forumdisplay.php?f=26)
-   -   comando para obtener el SO q tiene la pc (https://www.clubdelphi.com/foros/showthread.php?t=27579)

hEakfall 24-11-2005 16:04:02

comando para obtener el SO q tiene la pc
 
olaxx, kisiera saber si existe algun comando para poder sacer si una makina tiene winxp, win98 o winnt o cualkier otro. Lo necesito para poder llamar al promt de windows ya q este varia de acuerdo al SO. Thnx

Bicho 24-11-2005 16:11:03

Hola hEakfall, prueba a usar estas dos funciones,

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;
Salu2

delphi.com.ar 24-11-2005 16:12:13

Cita:

Empezado por hEakfall
olaxx, kisiera saber si existe algun comando para poder sacer si una makina tiene winxp, win98 o winnt o cualkier otro. Lo necesito para poder llamar al promt de windows ya q este varia de acuerdo al SO. Thnx

Comando??... el comando ver del interprete de comandos! :D
Si te refieres a alguna forma de saber que SO esta ejecutando tu aplicación, puedes hacerlo mediante las variables definidas es SysUtils: Win32Platformm, Win32MajorVersion, Win32MinorVersion y Win32BuildNumber. También puedes obtener estos valores por tus propios medios mediante la WinApi: GetVersionEx

PD: Leete la guía de estilos ;)

Saludos!

roman 24-11-2005 17:13:54

¿Qué es el promt de windows? ¿Te refieres al viejo command.com?

Porque sí es eso entonces bastaría obtener el valor de la variable de ambiente 'comspec' con la función GetEnvironmentVariable.

// Saludos

OSKR 24-11-2005 18:45:19

Por lo gereral el Prompt del sistema suele ser el intérprete de comandos del SO (bajo cónsola)

hEakfall 25-11-2005 11:14:57

olaxx, oks he probado el Win32Platformm pero no me sirve, ya q yo kiero saber si en una pc ay winxp o win2k o winmillenium; las variables Win32MajorVersion, Win32MinorVersion y Win32BuildNumber,no las he podido probar ya q mi delphi no las tiene T_T .

Ahh, tbn he probado la función GetEnvironmentVariable, y me dio como resultado la direccion del cmd (tengo winxp), ya q solo tengo este SO, espero q funcione para todos. Thnx a todos.

delphi.com.ar 25-11-2005 13:11:08

Cita:

Empezado por hEakfall
olaxx, oks he probado el Win32Platformm pero no me sirve, ya q yo kiero saber si en una pc ay winxp o win2k o winmillenium; las variables Win32MajorVersion, Win32MinorVersion y Win32BuildNumber,no las he podido probar ya q mi delphi no las tiene T_T.

Utiliza GetVersionEx, como te sugerí anteriormente, para obtener todas estas variables... Busca en el foro que hay mas de un ejemplo... Y por favor respeta la Guía de Estilo!!

roman 25-11-2005 16:24:11

Cita:

Empezado por hEakfall
Ahh, tbn he probado la función GetEnvironmentVariable, y me dio como resultado la direccion del cmd (tengo winxp), ya q solo tengo este SO, espero q funcione para todos.

Yo creo que sí funcionará. Desde los tiempos inmemoriales del MS-DOS, la variable comspec indica la ruta del intérprete de comandos.

// Saludos

dec 26-11-2005 00:12:53

Hola,

He recuperado el mensaje de Bicho, pues que es acaso lo que precisa hEakfall. ;)


La franja horaria es GMT +2. Ahora son las 20:30:10.

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