![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как узнать версию ОС с точностью до SP [D7]
Garacio © (2007-01-27 16:23:00)Как узнать версию операционной системы с точностью до SP?
Так, чтобы можно было:
procedure TForm1.Button1Click(Sender: TObject);
begin
if GetOSVersion = osXP SP2
then begin
...
end;
end;
Garacio (2007-01-27 18:26:00) [1]Т.е.:
type
wServicePackMajor: DWORD;
wServicePackMinor: DWORD;
procedure GetWindowsVersion(var Major: integer;
var Minor: integer);
begin
...
FAskerQ (2007-01-27 18:06:00) [2]
> Garacio © (27.01.07 16:23)
> Как узнать версию операционной системы с точностью до SP?
>
function GetOSVersion: string;
var
OSVersionInfo: TOSVersionInfo;
s: string;
begin
Result:= '';
OSVersionInfo.dwOSVersionInfoSize:= SizeOf(TOSVersionInfo);
if GetVersionEx(OSVersionInfo) then
begin
with OSVersionInfo do
case dwPlatformId of
VER_PLATFORM_WIN32_WINDOWS:
if dwMinorVersion = 0 then
s:= 'Windows 95'
else
s:= 'Windows 98';
VER_PLATFORM_WIN32_NT:
begin
if OSVersionInfo.dwMajorVersion = 5 then
begin
if OSVersionInfo.dwMinorVersion = 0 then
s:= 'Windows 2000'
else
s:= 'Windows XP';
end;
if OSVersionInfo.dwMinorVersion = 90 then
s:= 'Windows Me';
if OSVersionInfo.dwMajorVersion = 4 then
s:= 'Windows NT 4.0';
if OSVersionInfo.dwMajorVersion = 3 then
s:= 'Windows NT 3.51';
end;
VER_PLATFORM_WIN32s:
s:= 'Win 3.1 with Win32s'
end;
Result:= s + ' ' + OSVersionInfo.szCSDVersion;
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
Caption:= GetOSVersion;
end;
Не знаю будет ли работать правильно во всех ОС...
oxffff (2007-01-27 18:06:00) [3]GetVersionEx
typedef struct _OSVERSIONINFOEX
{ DWORD dwOSVersionInfoSize; DWORD dwMajorVersion; DWORD dwMinorVersion; DWORD dwBuildNumber; DWORD dwPlatformId; TCHAR szCSDVersion[128];
WORD wServicePackMajor; WORD wServicePackMinor;
WORD wSuiteMask; BYTE wProductType; BYTE wReserved;
} OSVERSIONINFOEX,