Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 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
14-33732
HolACost!
2003-08-25 10:41
2003.09.11
Можноли заставить мастдай работать с двумя момедами одновременно


1-33539
Юрий Федоров
2003-08-27 18:53
2003.09.11
Внешний COM сервер и потоковая модель


14-33787
panov
2003-08-22 18:24
2003.09.11
Форумы заработали.


14-33781
Дремучий
2003-08-22 14:35
2003.09.11
Фигня с ини-файлом.


7-33819
MW Programs
2003-06-24 17:32
2003.09.11
Windows XP





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский