PDA

Ver la Versión Completa : comando para obtener el SO q tiene la pc


hEakfall
24-11-2005, 17:04:02
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, 17:11:03
Hola hEakfall, prueba a usar estas dos funciones,

(*** 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, 17:12:13
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, 18: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, 19: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, 12: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, 14:11:08
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, 17:24:11
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, 01:12:53
Hola,

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