Entwickler-Ecke
Delphi Language (Object-Pascal) / CLX - Abmeldung vom Programm nach n-Minuten Inaktivität
trm - Di 24.05.11 20:08
Titel: Abmeldung vom Programm nach n-Minuten Inaktivität
Hallo,
folgendes Problem besteht bei mir:
Ich soll in mein Programm eine Abfrage einbauen, mit der der angemeldete Benutzer nach einer bestimmten Zeit abgemeldet wird, wenn das Programm nicht benutzt wird (Mausklicks, Tatstatureingaben).
Die einfachste Möglichkeit wäre, KeyPreview einzuschalten. Dann kann ich einen Timer jedesmal neu starten. Damit hätte ich einen Teil der Tastatur unter Kontrolle (Ausnahmen siehe Zitat).
Quelltext
1: 2: 3: 4: 5: 6: 7:
| Hat KeyPreview den Wert true, erhält das Formular Tastaturereignisse vor dem aktiven Steuerelement (das in der Eigenschaft ActiveControl angegeben ist). Ist KeyPreview auf false gesetzt, gehen Tastaturereignisse an das aktive Steuerelement. Die Einstellung bezieht sich nicht auf Navigationstasten (TAB, Pfeiltasten usw.), da diese keine Tastaturereignisse auslösen. Ähnliches gilt, wenn eine Schaltfläche den Fokus hat oder wenn dessen Eigenschaft Default den Wert true hat. Die Eingabetaste wird von KeyPreview nicht berücksichtigt, da diese kein Tastaturereignis auslöst. |
Aber wie gestalte ich das für die Mausklicks (nicht Mauszeigerbewegung) ?
Oder gibt es eine bessere Möglichkeit, die ich nicht kenne, um beides auszuwerten, damit ich einen Timer neu starten kann?
Viele Grüße
Edit: Keypreview angepasst
trm - Di 24.05.11 21:36
Hallo Sebastian,
GetLastInputInfo reagiert leider auch auf Mauszeigerbewegungen :(
Somit würde der Timer, wenn jemand mit dem Programm nicht aktiv arbeitet, aber mit dem Mauszeiger drüberfährt, wieder neu initialisiert.
Aber der Tipp gefällt mir, diese API kannte ich nicht :)
Wenn Du noch eine andere Idee hast, freue ich mich drüber.
trm - Mi 25.05.11 21:34
Habe es gelöst.
Es sind zwei Zustände, welche ich nun abfrage.
1. Programm ist nicht aktiv.
2. Computer wird nicht aktiv benutzt per Eingabegeräte.
1. Habe ich mit einem TTimer, einem TApplicationEvents und ein paar globalen Variablen gelöst.
2. Habe ich den Tipp von Sebastian umgesetzt.
Dankeschön :)
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!