- Регистрация
- 1 Мар 2015
- Сообщения
- 1,481
- Баллы
- 155
Поставленную задачу мы разобьем на две более простые:
Код будет не сложный, никаких параметров передавать не нужно, на выходе получим время простоя в секундах.
Закрыть форму при простое приложения.
Теперь, мы должны добавить на форму компонент Timer и по событию OnTimer будем проверять: если временной порог превышен - закрываем приложение.
- Написание определения времени простоя.
- Закрытие формы, если бездействие продолжалось более определенного времени.
Код будет не сложный, никаких параметров передавать не нужно, на выходе получим время простоя в секундах.
Код:
function SecondsIdle: DWord;
var
liInfo: TLastInputInfo;
begin
liInfo.cbSize := SizeOf(TLastInputInfo);
GetLastInputInfo(liInfo);
Result := (GetTickCount - liInfo.dwTime) div 1000;
end;
Теперь, мы должны добавить на форму компонент Timer и по событию OnTimer будем проверять: если временной порог превышен - закрываем приложение.
Код:
procedure TFmMAIN.Timer1Timer(Sender: TObject);
var
t: Integer;
begin
t := StrToInt(Format('%d', [UUser.SecondsIdle]));
if t >= 15 then // Тут нужно указать количество секунд до закрытия
Close;
end;
Последнее редактирование: