Текущий архив: 2003.09.11;
Скачать: CL | DM;
Вниз
Как определить версию Windows Найти похожие ветки
← →
Hermit (2003-06-25 19:40) [0]Как ТОЧНО определить версию Windows (Win 95, Win 95 OSR, Win 98, Win 98 SE и т.д.) ???
Чтение данных о версии из реестра не предлагать !!!
← →
Song (2003-06-25 19:51) [1]GetVersionEx() ?
← →
Hermit (2003-06-25 20:20) [2]Sorry за ламерский вопрос, уже FAQ посмотрел !!!
← →
Song (2003-06-25 21:45) [3]http://delphibase.endimus.com/?action=viewfunc&topic=sysparams&id=10002
← →
DVM (2003-06-26 12:14) [4]type
TOsVersion = (OsUnknown, OsWin95, OsWin95OSR2, OsWin98, OsWin98SE, OsWinME,
OsWinNT31, OsWinNT35, OsWinNT351, OsWinNT4, OsWin2000, OsWinXP);
function GetOSVersion: TOSVersion;
var
OsVerInfo: TOSVersionInfo;
MajorVer, MinorVer: Integer;
begin
Result := OsUnknown; // Неизвестная версия ОС
OsVerInfo.dwOSVersionInfoSize := SizeOf(TOSVersionInfo);
if GetVersionEx(osVerInfo) then
begin
MajorVer := OsVerInfo.dwMajorVersion;
MinorVer := OsVerInfo.dwMinorVersion;
case OsVerInfo.dwPlatformId of
VER_PLATFORM_WIN32_NT: // семейство NT
case MajorVer of
3: case MinorVer of
1: Result := OsWinNT31; // Windows NT 3.1
5: Result := OsWinNT35; // Windows NT 3.5
51: Result := OsWinNT351; // Windows NT 3.51
end;
4: Result := OsWinNT4; // Windows NT 4.0
5: case MinorVer of
0: Result := OsWin2000; // Windows 2000
1: Result := OsWinXP; // Windows XP
end;
end;
VER_PLATFORM_WIN32_WINDOWS: // семейство Windows 9x/ME
begin
if MajorVer <> 4 then exit;
case MinorVer of
0..9: if OsVerInfo.szCSDVersion[1] = "B" then Result := OsWin95OSR2 // Windows 95 OSR2 (4.00.950B)
else Result := OsWin95; // Windows 95 (4.00.950)
10..89: if OsVerInfo.szCSDVersion[1] = "A" then
Result := OsWin98SE // Windows 98SE (4.10.2222A)
else
Result := OsWin98; // Windows 98 (4.10.1998)
90: Result := OsWinME; ( 4.90.3000) type
TOsVersion = (OsUnknown, OsWin95, OsWin95OSR2, OsWin98, OsWin98SE, OsWinME,
OsWinNT31, OsWinNT35, OsWinNT351, OsWinNT4, OsWin2000, OsWinXP);
function GetOSVersion: TOSVersion;
var
OsVerInfo: TOSVersionInfo;
MajorVer, MinorVer: Integer;
begin
Result := OsUnknown; // Неизвестная версия ОС
OsVerInfo.dwOSVersionInfoSize := SizeOf(TOSVersionInfo);
if GetVersionEx(osVerInfo) then
begin
MajorVer := OsVerInfo.dwMajorVersion;
MinorVer := OsVerInfo.dwMinorVersion;
case OsVerInfo.dwPlatformId of
VER_PLATFORM_WIN32_NT: // семейство NT
case MajorVer of
3: case MinorVer of
1: Result := OsWinNT31; // Windows NT 3.1
5: Result := OsWinNT35; // Windows NT 3.5
51: Result := OsWinNT351; // Windows NT 3.51
end;
4: Result := OsWinNT4; // Windows NT 4.0
5: case MinorVer of
0: Result := OsWin2000; // Windows 2000
1: Result := OsWinXP; // Windows XP
end;
end;
VER_PLATFORM_WIN32_WINDOWS: // семейство Windows 9x/ME
begin
if MajorVer <> 4 then exit;
case MinorVer of
0..9: if OsVerInfo.szCSDVersion[1] = "B" then Result := OsWin95OSR2 // Windows 95 OSR2 (4.00.950B)
else Result := OsWin95; // Windows 95 (4.00.950)
10..89: if OsVerInfo.szCSDVersion[1] = "A" then
Result := OsWin98SE // Windows 98SE (4.10.2222A)
else
Result := OsWin98; // Windows 98 (4.10.1998)
90: Result := OsWinME; // Windows ME (4.90.3000)
end;
end;
end;
end;
end;
← →
Wizard_Ex (2003-06-26 18:13) [5]
procedure ShowSystemPlatform;
var data:OSVERSIONINFO;
Winda:string;
begin
data.dwOSVersionInfoSize:=sizeof(OSVERSIONINFO);
GetVersionEx(data);
Winda:="Windows ??";
case data.dwPlatformId of
VER_PLATFORM_WIN32s:Winda:="Windows 3.11";
VER_PLATFORM_WIN32_WINDOWS:
begin
if data.dwMajorVersion>=4 then
begin
if data.dwMinorVersion<10 then Winda:="Windows 95 "+
inttostr(data.dwMajorVersion)+"."+
inttostr(data.dwMinorVersion)+" (Build "+IntToStr(data.dwBuildNumber)+") "+
data.szCSDVersion;
if data.dwMinorVersion>=10 then
if data.szCSDVersion[1]="A" then
Winda:="Windows 98 "+
inttostr(data.dwMajorVersion)+"."+
inttostr(data.dwMinorVersion)+
" SE"+" (Build "+IntToStr(data.dwBuildNumber)+")"
else
Winda:="Windows 98 "+
inttostr(data.dwMajorVersion)+"."+
inttostr(data.dwMinorVersion)+" (Build "+IntToStr(data.dwBuildNumber)+") "+
data.szCSDVersion;
if data.dwMinorVersion>=90 then Winda:="Windows ME "+
inttostr(data.dwMajorVersion)+"."+
inttostr(data.dwMinorVersion)+" (Build "+IntToStr(data.dwBuildNumber)+") "+
data.szCSDVersion;
end;
end;
VER_PLATFORM_WIN32_NT:
begin
if data.dwMajorVersion<=4 then Winda:="Windows NT "+
inttostr(data.dwMajorVersion)+"."+
inttostr(data.dwMinorVersion)+" (Build "+IntToStr(data.dwBuildNumber)+") "+
data.szCSDVersion;;
if data.dwMajorVersion=5 then
begin
if data.dwMinorVersion=0 then Winda:="Windows 2000 "+
inttostr(data.dwMajorVersion)+"."+
inttostr(data.dwMinorVersion)+" (Build "+IntToStr(data.dwBuildNumber)+") "+
data.szCSDVersion;;
if data.dwMinorVersion>=1 then Winda:="Windows XP "+
inttostr(data.dwMajorVersion)+"."+
( data.dwMinorVersion)
procedure ShowSystemPlatform;
var data:OSVERSIONINFO;
Winda:string;
begin
data.dwOSVersionInfoSize:=sizeof(OSVERSIONINFO);
GetVersionEx(data);
Winda:="Windows ??";
case data.dwPlatformId of
VER_PLATFORM_WIN32s:Winda:="Windows 3.11";
VER_PLATFORM_WIN32_WINDOWS:
begin
if data.dwMajorVersion>=4 then
begin
if data.dwMinorVersion<10 then Winda:="Windows 95 "+
inttostr(data.dwMajorVersion)+"."+
inttostr(data.dwMinorVersion)+" (Build "+IntToStr(data.dwBuildNumber)+") "+
data.szCSDVersion;
if data.dwMinorVersion>=10 then
if data.szCSDVersion[1]="A" then
Winda:="Windows 98 "+
inttostr(data.dwMajorVersion)+"."+
inttostr(data.dwMinorVersion)+
" SE"+" (Build "+IntToStr(data.dwBuildNumber)+")"
else
Winda:="Windows 98 "+
inttostr(data.dwMajorVersion)+"."+
inttostr(data.dwMinorVersion)+" (Build "+IntToStr(data.dwBuildNumber)+") "+
data.szCSDVersion;
if data.dwMinorVersion>=90 then Winda:="Windows ME "+
inttostr(data.dwMajorVersion)+"."+
inttostr(data.dwMinorVersion)+" (Build "+IntToStr(data.dwBuildNumber)+") "+
data.szCSDVersion;
end;
end;
VER_PLATFORM_WIN32_NT:
begin
if data.dwMajorVersion<=4 then Winda:="Windows NT "+
inttostr(data.dwMajorVersion)+"."+
inttostr(data.dwMinorVersion)+" (Build "+IntToStr(data.dwBuildNumber)+") "+
data.szCSDVersion;;
if data.dwMajorVersion=5 then
begin
if data.dwMinorVersion=0 then Winda:="Windows 2000 "+
inttostr(data.dwMajorVersion)+"."+
inttostr(data.dwMinorVersion)+" (Build "+IntToStr(data.dwBuildNumber)+") "+
data.szCSDVersion;;
if data.dwMinorVersion>=1 then Winda:="Windows XP "+
inttostr(data.dwMajorVersion)+"."+
inttostr(data.dwMinorVersion)+" (Build "+IntToStr(data.dwBuildNumber)+") "+
data.szCSDVersion;;
end;
end;
end;
OS.Caption:=Winda;
end;
← →
Hermit (2003-06-29 00:57) [6]Ну я же написал, что FAQ посмотрел, на microsoft.com сходил и всё понял ;-).
Сделал почти так же как DVM.
Всем большое спасибо !!!
Страницы: 1 вся ветка
Текущий архив: 2003.09.11;
Скачать: CL | DM;
Память: 0.47 MB
Время: 0.009 c