![]() |
![]() ![]() ![]() ![]() |
|
Получение информации о типе и версии операционной системыDelphi , ОС и Железо , Windows
Автор: Игорь Шевченко
{ **** 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; Программа на Delphi, которая получает информацию о типе и версии операционной системы, установленной на компьютере пользователя. Единица Программа также содержит константу Программа включает в себя пример использования функции Распределение работы программы:
Программа - простой пример использования Delphi для получения информации о операционной системе, установленной на компьютере пользователя. Вот некоторые потенциальные улучшения, которые можно сделать:
Вот пример реализации этих улучшений: В этом коде определены две новые функции, Программа также включает обработку ошибок для случаев, когда API-функция В статье описано, как получить информацию о типе и версии установленной операционной системы Windows, используя функцию GetVersionExA из библиотеки Windows. Комментарии и вопросыПолучайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш
|
||||
©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007 | ||||