Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Система";
Текущий архив: 2003.09.11;
Скачать: [xml.tar.bz2];

Вниз

Как определить версию 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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.009 c
3-33513
dot
2003-08-19 18:41
2003.09.11
Доступ к таблице


14-33792
Шерлок Холмс
2003-08-21 00:59
2003.09.11
Спать охота.


11-33531
Nwm
2003-01-04 12:46
2003.09.11
(sender as tkollistview)


1-33626
Eagle Owl
2003-08-31 21:06
2003.09.11
GIF


6-33719
seemann
2003-07-07 00:17
2003.09.11
Передача файла





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский