Листинг 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 и в случае успеха возвращает ненулевое значение. Упомянутая структура имеет следующие поля: