Листинг 7.2.
Определение версии ОС (NT, 2000, ХР)
procedure TForm1.FormCreate(Sender: TObject);
var
info: OSVERSIONINFOEX;
item: TListItem;
suite, additional: String;
begin
//Получаем информацию о версии ОС
info.dwOSVersionInfoSize := SizeOf(info);
GetVersionEx(info);
//Заполняем список информацией об ОС
//…
//..версия о пакете обновлений
item := lvwVerInfo.Items.Add();
item.Caption := \'Версия ServicePack\
item.SubItems.Insert
(0, IntToStr(Integer(info.wServicePackMajor)) + \'.\' +
IntToStr(Integer(info.wServicePackMinor)));
//..комплекация ОС
suite := \'\
if info.wSuiteMask and VER_SUITE_BACKOFFICE <> 0 then
suite := suite + \'[Установлен Back Office] \
if info.wSuiteMask and VER_SUITE_DATACENTER <> 0 then
suite := suite + \'[Microsoft Data Center] \
if info.wSuiteMask and VER_SUITE_ENTERPRISE <> 0 then
suite := suite + \'[Windows 2000 Advanced Server] \
if info.wSuiteMask and VER_SUITE_SMALLBUSINESS <> 0 then
suite := suite + \'[Small Business Server] \
if info.wSuiteMask and VER_SUITE_SMALLBUSINESS_RESTRICTED <> 0
then
suite := suite + \'[Small Business Server, ограниченная версия] \
if info.wSuiteMask and VER_SUITE_TERMINAL <> 0 then
suite := suite + \'[Terminal Service] \
if info.wSuiteMask and VER_SUITE_PERSONAL <> 0 then
suite := suite + \'[Workstation Personal (не Professional)] \
item := lvwVerInfo.Items.Add();
item.Caption := \'Комплектация\
item.SubItems.Add(suite);
//..дополнительные сведения
additional := \'\
if info.wProductType and VER_NT_WORKSTATION <> 0 then
additional := additional + \'[Рабочая станция] \
if info.wProductType and VER_NT_DOMAIN_CONTROLLER <> 0 then
additional := additional + \'[Контроллер домена] \
if info.wProductType and VER_NT_SERVER <> 0 then
additional := additional + \'[Сервер] \
item := lvwVerInfo.Items.Add();
item.Caption := \'Дополнительно\
item.SubItems.Add(additional);
end;