Закрыть приложение при бездействии

Дата публикации

Здравствуйте. Давненько я ничего не писал. Исправляюсь. Сегодня речь пойдет о закрытии формы, если никаких действий не происходит. 

 Поставленную задачу мы разобьем на две более простые:

  1. Написание функции определения времени простоя.
  2. Закрытие формы, если бездействие продолжалось более определенного времени.

Функция определения времени простоя приложения.

Код будет не сложный, никаких параметров передавать не нужно, на выходе получим время простоя в секундах.

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;

 

Вот и все, как всегда ничего сложного. Если нужна помощь, я как всегда готов помочь. 

Добавить комментарий



Обновить

Комментарии   

 
0 #2 Maxim 16.12.2015 08:11
Цитирую AнToн:
а эта функция применима с Google Chrom ? (желаемый результат чтобы программа закрывалась после 5 минут если свёрнута в трей)

Нет, эта функция может быть использована в программах, написанных в Delphi. Используя эту функцию приложение закрывает само себя.
Цитировать
 
 
0 #1 AнToн 16.12.2015 06:20
а эта функция применима с Google Chrom ? (желаемый результат чтобы программа закрывалась после 5 минут если свёрнута в трей)
Цитировать
 
Thursday the 14th. icq 486350790
Copyright 2012

©