Статистика |
Онлайн всего: 1 Гостей: 1 Пользователей: 0 |
|
Определение типа установленной операционной системы(delphi)
//пример if WhatWindowsIsInstalled = 'Windows Seven' then ...
unit whatos;
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; overload; function WhatWindowsIsInstalled(var Major:integer; var Minor:integer): string; overload;
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' //windows 95
else if (Verinfo.old.dwMajorVersion = 4) and (Verinfo.old.dwMinorVersion = 10) and (Verinfo.old.dwBuildNumber = 1998) then Result := 'Windows 98' //Windows 98 else if (Verinfo.old.dwMinorVersion = 90) then Result := 'Windows Me'; //Windows Me VER_PLATFORM_WIN32_NT: case Verinfo.old.dwMajorVersion of 3: Result := 'Windows NT 3.51'; //Windows NT 3.51 4: Result := 'Windows NT 4.0'; //Windows NT 4.0 5: if Verinfo.old.dwMinorVersion = 0 then Result := 'Windows 2000' //Windows 2000 else if Verinfo.old.dwMinorVersion = 1 then Result := 'Windows XP' //Windows XP else if Verinfo.old.dwMinorVersion = 2 then Result := 'Windows XP 64bit'; //Windows XP 64bit 6: if Verinfo.old.dwMinorVersion = 0 then Result := 'Windows Vista' //Windows Vista else if Verinfo.old.dwMinorVersion = 1 then Result := 'Windows Seven'; //Windows Seven end; VER_PLATFORM_WIN32s: case Verinfo.old.dwMajorVersion of 5: if Verinfo.old.dwMinorVersion = 2 then Result := 'Windows Server 2003'; //Windows Server 2003 6: if Verinfo.old.dwMinorVersion = 0 then Result := 'Windows Server 2008' //Windows Server 2008 else if Verinfo.old.dwMinorVersion = 1 then Result := 'Windows Server 2008 R2'; //Windows Server 2008 R2 end; end; end;
function WhatWindowsIsInstalled(var Major:integer; var Minor:integer): string; overload; 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' //Windows 95 else if (Verinfo.old.dwMajorVersion = 4) and (Verinfo.old.dwMinorVersion = 10) and (Verinfo.old.dwBuildNumber = 1998) then Result := 'Windows 98' //Windows 98 else if (Verinfo.old.dwMinorVersion = 90) then Result := 'Windows Me'; //Windows Me VER_PLATFORM_WIN32_NT: case Verinfo.old.dwMajorVersion of 3: Result := 'Windows NT 3.51'; //Windows NT 3.51 4: Result := 'Windows NT 4.0'; //Windows NT 4.0 5: if Verinfo.old.dwMinorVersion = 0 then Result := 'Windows 2000' //Windows 2000 else if Verinfo.old.dwMinorVersion = 1 then Result := 'Windows XP' //Windows XP else if Verinfo.old.dwMinorVersion = 2 then Result := 'Windows XP 64bit'; //Windows XP 64bit 6: if Verinfo.old.dwMinorVersion = 0 then Result := 'Windows Vista' //Windows Vista else if Verinfo.old.dwMinorVersion = 1 then Result := 'Windows Seven'; //Windows Seven end; VER_PLATFORM_WIN32s: case Verinfo.old.dwMajorVersion of 5: if Verinfo.old.dwMinorVersion = 2 then Result := 'Windows Server 2003'; //Windows Server 2003 6: if Verinfo.old.dwMinorVersion = 0 then Result := 'Windows Server 2008' //Windows Server 2008 else if Verinfo.old.dwMinorVersion = 1 then Result := 'Windows Server 2008 R2'; //Windows Server 2008 R2 end; end; Major:=Verinfo.old.dwMajorVersion; Minor:=Verinfo.old.dwMinorVersion; end;
end.
|
Категория: Cтатьи по delphi | Добавил: xcodemaster (05.01.2012)
|
Просмотров: 1915 | Комментарии: 2
| Рейтинг: 0.0/0 |
Добавлять комментарии могут только зарегистрированные пользователи. [ Регистрация | Вход ]
|
|
|