Читаем Delphi. Трюки и эффекты полностью

Листинг 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;

Имя компьютера

Следующий простой пример (листинг 7.3) показывает, как можно определить сетевое имя компьютера. Функция ComputerName скрывает «прелести» работы со строковым буфером, который нужно передавать в API-функцию GetComputerName.

...

Листинг 7.3.

Определение сетевого имени компьютера

function ComputerName(): String;

var

buffer: String;

len: Cardinal;

begin

len := MAX_COMPUTERNAME_LENGTH + 1;

SetLength(buffer, len);

if GetComputerName(PAnsiChar(buffer), len) <> False then

ComputerName := Copy(buffer, 1, len)

else

ComputerName := \'\

end;

Имя пользователя

Определить имя пользователя, от имени которого запущена программа (а точнее – вызывающий функцию поток), можно с использованием функции из листинга 7.4.

...

Перейти на страницу:

Похожие книги

1001 совет по обустройству компьютера
1001 совет по обустройству компьютера

В книге собраны и обобщены советы по решению различных проблем, которые рано или поздно возникают при эксплуатации как экономичных нетбуков, так и современных настольных моделей. Все приведенные рецепты опробованы на практике и разбиты по темам: аппаратные средства персональных компьютеров, компьютерные сети и подключение к Интернету, установка, настройка и ремонт ОС Windows, работа в Интернете, защита от вирусов. Рассмотрены не только готовые решения внезапно возникающих проблем, но и ответы на многие вопросы, которые возникают еще до покупки компьютера. Приведен необходимый минимум технических сведений, позволяющий принять осознанное решение.Компакт-диск прилагается только к печатному изданию книги.

Юрий Всеволодович Ревич

Программирование, программы, базы данных / Интернет / Компьютерное «железо» / ОС и Сети / Программное обеспечение / Книги по IT
Эффективное использование C++. 55 верных способов улучшить структуру и код ваших программ
Эффективное использование C++. 55 верных способов улучшить структуру и код ваших программ

Эта книга представляет собой перевод третьего издания американского бестселлера Effective C++ и является руководством по грамотному использованию языка C++. Она поможет сделать ваши программы более понятными, простыми в сопровождении и эффективными. Помимо материала, описывающего общую стратегию проектирования, книга включает в себя главы по программированию с применением шаблонов и по управлению ресурсами, а также множество советов, которые позволят усовершенствовать ваши программы и сделать работу более интересной и творческой. Книга также включает новый материал по принципам обработки исключений, паттернам проектирования и библиотечным средствам.Издание ориентировано на программистов, знакомых с основами C++ и имеющих навыки его практического применения.

Скотт Мейерс , Скотт Майерс

Программирование, программы, базы данных / Программирование / Книги по IT