Rozpoznawanie systemu

0

Czy nie mogl by ktoś tak poprawić poniższą procedure żęby sprawdzała jaki jest dokładnie system i np. w zaleznosci od tego dpisywał items do listboxa ...

var
OS:TOsVersionInfo;
begin
OS.dwOSVersionInfoSize:=SizeOf(os);
GetVersionEx(os);
case os.dwPlatformId of
VER_PLATFORM_WIN32s: Caption:='WIN 3.1';
VER_PLATFORM_WIN32_WINDOWS: Caption:='WIN 9x';
VER_PLATFORM_WIN32_NT: Caption:='WIN NT';
end;
end;

Jeżeli chcesz mieć dokładną wersję systemu to pola:
dwMajorVersion oraz dwMinorVersion zawierają dokładny numer systemu.
Np. Win NT 3.51:
dwMajorVersion = 3
dwMinorVersion = 51
Np. Win NT 4.0:
dwMajorVersion = 4
dwMinorVersion = 0
Np. Win 2000:
dwMajorVersion = 5
dwMinorVersion = 0
Np. Win XP:
dwMajorVersion = 5
dwMinorVersion = 1

Kod pochodzi z podstrony 4p ...

0

function GetSystem: String;
var
OSinfo: OSVERSIONINFO;
OS: string;

begin

OSinfo.dwOSVersionInfoSize := SizeOf(OSVERSIONINFO);
GetVersionEx(OSinfo);

case (OSinfo.dwPlatformId) of

 VER_PLATFORM_WIN32s: OS := 'WIN 3.1' ;

 VER_PLATFORM_WIN32_WINDOWS:
      case (OSinfo.dwMajorVersion + OSinfo.dwMinorVersion) of
            4:   OS := 'Win 95' ;
            14: OS := 'Win 98' ;
            94: OS := 'Win Me' ;
            end;

 VER_PLATFORM_WIN32_NT:
      case (OSinfo.dwMajorVersion + OSinfo.dwMinorVersion) of
            54: OS := 'Win NT 3.51';
            4:  OS := 'Win NT 4.0';
            5:  OS := 'Win 2000';
            6:  OS := 'Win XP';
            7:  OS := 'Windows Server 2003';
            end;

 else OS := 'Nieznany';
 end;

Result := OS;

end;

Nie wiem czy dobrze ale chyba dziala. Tak szybko przerobilem na delphi bo mialem to w C++ wiec moze jakis error sie przykleil :)

0

Hmm, cos nienajlepiej działa bo ja mam win98 a nie 3.1 :)))

0

Qrcze.. hm... nie chce mi sie poprawiac. Masz link:

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/sysinfo/base/osversioninfoex_str.asp

Tam jest opisane troszke o tym. Po angielsku ale...
[cya]

[dopisane]

VER_PLATFORM_WIN32s: Caption:='WIN 3.1';
VER_PLATFORM_WIN32_WINDOWS: Caption:='WIN 9x';
VER_PLATFORM_WIN32_NT: Caption:='WIN NT';

Skoro moje nie dziala to czemu to dziala? kierowalem sie tez tym artykulem. Tu tez jest:
VER_PLATFORM_WIN32s: Caption:='WIN 3.1'; [???] [stuk]

1 użytkowników online, w tym zalogowanych: 0, gości: 1