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

Листинг 7.4.

Определение имени пользователя

function UserName: String;

var

buffer: String;

len: Cardinal;

begin

len := 100; //Увы, но константы UNLEN в модуле Windows найти

//не удалось. Буфера такой длины должно хватить

SetLength(buffer, len);

if GetUserName(PAnsiChar(buffer), len)

<> False then

UserName := Copy(buffer, 1, len)

else

UserName := \'\

end;

Чаще всего приведенная в листинге 7.4 функция определяет пользователя, выполнившего вход в систему. Но если приложение запущено от имени другого пользователя (например, User при вошедшем пользователе Admin), то, соответственно, определяется имя пользователя User.

Состояние системы питания компьютера

Следующий пример является интересным для обладателей компьютеров с резервным источником питания (батарея в ноутбуке или источник бесперебойного питания).

Для определения состояния системы питания компьютера используется API-функция GetSystemPowerStatus. Она заполняет структуру TSystemPowerStatus и в случае успеха возвращает ненулевое значение. Упомянутая структура имеет следующие поля:

...

TSystemPowerStatus = packed record

ACLineStatus : Byte; //Подключение к сети

//переменного тока

BatteryFlag : Byte; //Состояние батареи

//(уровень заряда и прочее)

BatteryLifePercent : Byte; //Оставшийся ресурс батареи (в %)

Reserved1 : Byte;

BatteryLifeTime : DWORD; //Оставшееся время (в сек.)

//работы батареи

BatteryFullLifeTime : DWORD; //Полное время (в сек.)

//работы батареи

end;

Если значения полей BatteryLifePercent, BatteryLif eTime, BatteryFull-Lif eTime предельно ясны, то извлечение информации из полей ACLineStatus и BatteryFlag можно посмотреть в листинге 7.5.

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

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

Компьютерные сети. 5-е издание
Компьютерные сети. 5-е издание

Перед вами — очередное, пятое издание самой авторитетной книги по современным сетевым технологиям, написанной признанным экспертом в этой области Эндрю Таненбаумом в соавторстве с профессором Вашингтонского университета Дэвидом Уэзероллом. Первая версия этого классического труда появилась на свет в далеком 1980 году, и с тех пор каждое издание книги неизменно становилось бестселлером и использовалось в качестве базового учебника в ведущих технических вузах. В книге последовательно изложены основные концепции, определяющие современное состояние и тенденции развития компьютерных сетей. Авторы подробнейшим образом объясняют устройство и принципы работы аппаратного и программного обеспечения, рассматривают все аспекты и уровни организации сетей — от физического до уровня прикладных программ. Изложение теоретических принципов дополняется яркими, показательными примерами функционирования Интернета и компьютерных сетей различного типа. Пятое издание полностью переработано с учетом изменений, происшедших в сфере сетевых технологий за последние годы и, в частности, освещает такие аспекты, как беспроводные сети стандарта 802.12 и 802.16, сети 3G, технология RFID, инфраструктура доставки контента CDN, пиринговые сети, потоковое вещание, интернет-телефония и многое другое.

А. Гребенькова , Джеймс Уэзеролл

Технические науки