![]() |
User idle time?
Heyho,
ich brauch noch was für mein aktuelles projekt. und zwar möchte ich wissen, wie lange der user idle ist - sprich wie lange er keine maus und tastatureingaben gemacht hat. wie kann ich das abfragen? weil zb, der bildschirmschoner weis das ja auch irgendwoher :) kann mir da vlt. jemand mal nen codefetzen geben wie ich das umsetze? danke schonmal |
Re: User idle time?
ich hab das so gelöst:
- im globalen Message-handler meines Programms merke ich mir die LastMsgTime mit GetTickCount. - in einem Timer (Intervall 500 ms) prüfe ich, ob der aktuelle GetTickCount - LastMsgTime grösser als die gewünschte Idle-Time ist und mache dann meine Aktionen für Idle.
Delphi-Quellcode:
procedure FormXY.HandleOnMessage (var Msg: TMsg; var Handled: Boolean);
begin ... lastMsgTime := Msg.time; // Zeit der letzten Message merken ... end; // wird alle 500ms aufgerufen, um zu prüfen, ob das Fenster minimiert werden muss procedure FormXY.TiIdleTimerOnTimer (Sender: TObject); var x : DWORD; diff : DWORD; begin x := GetTickCount; // aktuelle Zeit holen diff := x - lastMsgTime; // Zeit der letzten Message berechnen ... if diff > FoKonfiguration.Allgemein_FensterAutomatischSchliessenZeit * 1000 then begin FormXY.Hide; // Fenster verstecken end; ... end; |
Re: User idle time?
danke für deine hilfe ;)
aber ich brauch das ja global, wenn ich das richtig sehe, bezieht sich deine lösung ja nur auf das aktuelle programm oder? ich bin zwischenzeitlich schon auf ![]() jetzt hat mein siginfo ne funktion mehr :) |
Re: User idle time?
Teilst Du uns deine Lösung auch mit?
Nur Fragen stellen, aber keine Lösung präsentieren ist nicht sonderlich schick... |
Re: User idle time?
hoppala tut mir leid, hab vergessen den link mit reinzustellen.
![]() |
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:10 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz