Sign in Join
Wiki copytemporary

WindowsVersion/ru: what changed

Revision 0 to 1. Removed lines have a minus sign; added lines have a plus sign.

Title: WindowsVersion/ru

OldNewLine
1+*(Windows only)*
2+
3+Эта статья посвящена программированию для Windows.
4+
5+Функция ниже определяет номер текущей версии Windows.
6+
7+``` pascal
8+uses
9+ Windows, SysUtils, ...;
10+ ...
11+{
12+Значение номеров версий Windows:
13+5.0 => Windows 2000
14+5.1 => Windows XP
15+5.2 => Windows XP64 или Windows 2003 Server
16+6.0 => Windows Vista или Windows 2008 Server
17+6.1 => Windows 7 или Windows 2008 Server R2
18+6.2 => Windows 8 или Windows Server 2012
19+6.3 => Windows 8.1 или Windows Server 2012 RS
20+}
21+
22+function funGetWinVer: string;
23+// Возвращает номер версии Windows в виде строки
24+begin
25+ Result := IntToStr(LOBYTE(LOWORD(GetVersion)));
26+ Result := Result + '.';
27+ Result := Result + IntToStr(HIBYTE(LOWORD(GetVersion)));
28+end;
29+```
30+
31+Кроме того, модуль [[SysUtils]] предоставляет информацию о версии Windows в переменных:
32+
33+``` pascal
34+program EchoWinVersion;
35+uses sysutils;
36+...
37+begin
38+ Writeln('Win32 Platform : ', Win32Platform );
39+ Writeln('Win32 Major Version: ', Win32MajorVersion);
40+ Writeln('Win32 Minor Version: ', Win32MinorVersion);
41+ Writeln('Win32 Build Number : ', Win32BuildNumber );
42+ Writeln('Win32 CSD Version : ', Win32CSDVersion );
43+ readln;
44+end.
45+```
46+
47+Выходные данные для Windows 7 с пакетом обновления 1 (SP1) выглядят следующим образом:
48+
49+ Win32 Platform : 2
50+ Win32 Major Version: 6
51+ Win32 Minor Version: 1
52+ Win32 Build Number : 7601
53+ Win32 CSD Version : Service Pack 1
54+
55+Для Windows 10 Pro Build 18362 (64-разрядная версия) результат выглядит следующим образом:
56+
57+ Win32 Platform : 2
58+ Win32 Major Version: 6
59+ Win32 Minor Version: 2
60+ Win32 Build Number : 9200
61+ Win32 CSD Version :
62+
63+что явно неверно :(
64+
65+Однако для идентификации Windows 10 (и более ранних версий) работает следующее:
66+
67+``` pascal
68+...
69+Uses ..., Win32Proc;
70+...
71+
72+Procedure GetWinVer;
73+Begin
74+if WindowsVersion = wv95 then Memo.Lines.Add('Windows 95')
75+ else if WindowsVersion = wvNT4 then Memo.Lines.Add('Windows NT v.4')
76+ else if WindowsVersion = wv98 then Memo.Lines.Add('Windows 98')
77+ else if WindowsVersion = wvMe then Memo.Lines.Add('Windows ME')
78+ else if WindowsVersion = wv2000 then Memo.Lines.Add('Windows 2000')
79+ else if WindowsVersion = wvXP then Memo.Lines.Add('Windows XP')
80+ else if WindowsVersion = wvServer2003 then Memo.Lines.Add('Windows Server 2003/Windows XP64')
81+ else if WindowsVersion = wvVista then Memo.Lines.Add('Windows Vista')
82+ else if WindowsVersion = wv7 then Memo.Lines.Add('Windows 7')
83+ else if WindowsVersion = wv10 then Memo.Lines.Add('Windows 10')
84+ else Memo.Lines.Add('Windows Unknown Version!');
85+End.
86+```
87+
88+Для 64-разрядной версии Windows 10 оно выводит «Windows 10».
89+
90+---
91+*From the Free Pascal wiki, page "WindowsVersion/ru", as it stood on 2020-12-10 after a change by FTurtle, out of the wiki's dump of 2024-05-26. Copyright stays with the author who wrote it, according to the old wiki's [[Licensing]] page. If you have concerns about this material, [message the admin](/wiki-contact).*

Back to history