본문 바로가기

Delphi/간단하게

간단하게 유휴시간(자리비움) 체크하기

폼에 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;
반응형