Использовать функцию API GetVersionEx
function GetVersionEx(var lpVersionInformation: TOSVersionInfo): BOOL; stdcall;
Аргумент
функции – структура TOSVersionInfo, содержит
DwVersionInfoSize:DWORD –
заполняется как sizeof TOSVersionInfo) перед вызовом
функции
DwMajorVersion:DWORD – старшая цифра версии Windows
Win
NT 3.5 = 3
Win NT 4.0, Win9x = 4
Win2000 = 5
Win
XP = 5
DwMinorVersion: DWORD – младшая цифра версии
Win NT 3.51
= 51
Win NT 4.0 = 0
Win 95 = 0
Win98 = 10 (вообще
говоря больше 0
Win 2000 = 0
Win XP =
1
DwBuildNumber: DWORD
Win NT 40 – номер билда
Win
9x – старший байт – старшая и младшая цифры версии / младший – номер
билда
dwPlatformId: DWORD
VER_PLATFORM_WIN32s
Win32s on Windows 3.1.
VER_PLATFORM_WIN32_WINDOWS Win32 on Windows
9x
VER_PLATFORM_WIN32_NT Win32 on
Windows NT, 2000
SzCSDVersion:DWORD
NT – содержит PСhar с инфо о
установленном ServicePack
9x– доп. инфо, может и не
быть
Комментарий от Ошин Влад (RV@fss.moris.ru)
я делаю так
R:=TRegistry.Create;
R.RootKey:=HKEY_LOCAL_MACHINE;
R.OpenKey('SOFTWARE\Microsoft\Windows\CurrentVersion', False);
No:=R.ReadString('Version'); //ну и все прочее из этого ключа
R.Free;
Комментарий
от BAHO (qvitron@mail.ru)
Считаю нужным дополнить код Ошина Влада. В NT
подобных ОС надо писать так:
R.OpenKey('SOFTWARE\Microsoft\Windows NT\CurrentVersion', False);
Комментарий
от Копысов Владислав (postmaster@autodealer.ru)
Для NT-подобных систем
необходимо писать
R.OpenKeyReadOnly('SOFTWARE\Microsoft\Windows NT\CurrentVersion')
иначе
доступ будет закрыт для пользователя с НЕ
администраторскими
правами.
Комментарий от Alexandr Belayev
(var_alex@fromru.com)
Уже давно в sysutils обявлены след
переменные:
//-----------------------------------------------------------------
Win32Platform: Integer = 0;
{ Win32 OS version information -
see TOSVersionInfo.dwMajorVersion/dwMinorVersion/dwBuildNumber }
Win32MajorVersion: Integer = 0;
Win32MinorVersion: Integer = 0;
Win32BuildNumber: Integer = 0;
{ Win32 OS extra version info string -
see TOSVersionInfo.szCSDVersion }
Win32CSDVersion: string = '';
//-----------------------------------------------------------------
которые
заполняются в процедуре procedure InitPlatformId; объявленной
в том-же
sysutils. И эта функция вызывается в initialization sysutils.
Итого, для
получения информации о версии ОС уже готова к использованию
без лишних
телодвижений. Хотя если не используется sysutils, то не получится.
|
Copyright ©
"Мастера DELPHI" E-mail:
delphi@mastak.com
http://www.delphimaster.ru |
Источник получения информации: http://www.delphimaster.ru
|