폼에 TTimer를 올리고 OnTimer 이벤트를 추가합니다.
procedure TForm1.Timer1Timer(Sender: TObject);
function IsIdle(msTime: Integer): Boolean;
var
LastInputInfo: TLastInputInfo;
begin
LastInputInfo.cbSize := SizeOf(TLastInputInfo);
GetLastInputInfo(LastInputInfo);
Result := (GetTickCount - LastInputInfo.dwTime) div msTime > 0;
end;
begin
//설정된 초만큼 사용자 입력이 없을 경우
if IsIdle(5000) then begin
Timer1.Enabled := False;
{To Do}
end;
end;
폼의 OnMouseMove 이벤트 등 다양한 방법으로 유휴시간을 체크합니다.
procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);
begin
if not Timer1.Enabled then
Timer1.Enabled := True;
end;
반응형