Получение информации о типе и версии операционной системы
Автор: Игорь Шевченко
WEB-сайт: http://delphibase.endimus.com
{ **** UBPFD *********** by delphibase.endimus.com ****
>> Получение информации о типе и версии операционной системы
Опеределение типа установленной операционной системы
Зависимости: Windows
Автор: Игорь Шевченко, whitefranz@hotmail.com, Москва
Copyright: Игорь Шевченко
Дата: 26 апреля 2002 г.
***************************************************** }
unit HSWinFuncs;
interface
uses
Windows;
const
VER_NT_WORKSTATION = 0;
VER_NT_DOMAIN_CONTROLLER = 1;
VER_NT_SERVER = 2;
VER_SUITE_SMALLBUSINESS = 1;
VER_SUITE_ENTERPRISE = 2;
VER_SUITE_BACKOFFICE = 4;
VER_SUITE_COMMUNICATIONS = 8;
VER_SUITE_TERMINAL = $10;
VER_SUITE_SMALLBUSINESS_RESTRICTED = $20;
VER_SUITE_EMBEDDEDNT = $40;
VER_SUITE_DATACENTER = $80;
VER_SUITE_SINGLEUSERTS = $100;
VER_SUITE_PERSONAL = $200;
VER_SUITE_BLADE = $400;
type
TOsVersionInfoExA = packed record
old: TOsVersionInfoA;
wServicePackMajor: Word;
wServicePackMinor: Word;
{
wSuiteMask
Набор битовых флагов, определяющих компоненты Windows
VER_SUITE_BACKOFFICE Установлен компонент Microsoft BackOffice.
VER_SUITE_BLADE Установлен компонент Windows .NET Web Server.
VER_SUITE_DATACENTER Установлена Windows 2000 или компонент Windows .NET
Datacenter Server
VER_SUITE_ENTERPRISE Установлена Windows 2000 Advanced Server или компонент
Windows .NET Enterprise Server.
VER_SUITE_PERSONAL Установлена Windows XP Home Edition.
VER_SUITE_SMALLBUSINESS Установлен Microsoft Small Business Server.
VER_SUITE_SMALLBUSINESS_RESTRICTED Установлен Microsoft Small Business
Server с ограничительной лицензией для клиентов
VER_SUITE_TERMINAL Установлен компонент Terminal Services.
}
wSuiteMask: Word;
{wProductType
Дополнительная информация о типе операционной системы
VER_NT_WORKSTATION Операционная система Windows NT 4.0 Workstation,
Windows 2000 Professional,
Windows XP Home Edition, или
Windows XP Professional.
VER_NT_DOMAIN_CONTROLLER Операционная система является контроллером домена.
VER_NT_SERVER Операционная система является сервером.
}
wProductType: Byte;
wReserved: Byte;
end;
function WhatWindowsIsInstalled: string;
implementation
{ Определение типа установленной операционной системы }
function WhatWindowsIsInstalled: string;
var
VerInfo: TOsVersionInfoExA;
begin
FillChar(VerInfo, sizeof(VerInfo), 0);
VerInfo.old.dwOSVersionInfoSize := Sizeof(TOsVersionInfoExA);
if not GetVersionExA(VerInfo.old) then
begin
VerInfo.old.dwOSVersionInfoSize := Sizeof(TOsVersionInfoA);
GetVersionExA(VerInfo.old);
end;
case VerInfo.old.dwPlatformId of
VER_PLATFORM_WIN32_WINDOWS:
if (Verinfo.old.dwMajorVersion = 4) and
(Verinfo.old.dwBuildNumber = 950) then
Result := 'Windows 95'
else if (Verinfo.old.dwMajorVersion = 4) and
(Verinfo.old.dwMinorVersion = 10) and
(Verinfo.old.dwBuildNumber = 1998) then
Result := 'Windows 98'
else if (Verinfo.old.dwMinorVersion = 90) then
Result := 'Windows Me';
VER_PLATFORM_WIN32_NT:
if Verinfo.old.dwMajorVersion = 3 then
Result := 'Windows NT 3.51'
else if Verinfo.old.dwMajorVersion = 4 then
Result := 'Windows NT 4.0'
else if Verinfo.old.dwMajorVersion = 5 then
if Verinfo.old.dwMinorVersion = 0 then
Result := 'Windows 2000'
else if Verinfo.old.dwMinorVersion = 1 then
Result := 'Windows XP';
VER_PLATFORM_WIN32s:
Result := 'Win32s';
end;
end;
end.
Пример использования:
procedure TfrmMain.FormCreate(Sender: TObject);
begin
WindowsTypeEdit.Text := WhatWindowsIsInstalled();
end;
|