Autor Beitrag
trm
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 491
Erhaltene Danke: 19

Windows 7x64
Delphi 7
BeitragVerfasst: Di 24.05.11 20:08 
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).
ausblenden 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

_________________
In Erfurt gibt es eine Pension, in der es gemütlich ist, Google einfach nach Pension Fiege ;)
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19339
Erhaltene Danke: 1752

W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Di 24.05.11 20:45 
Wie wäre es mit einem Timer und GetLastInputInfo?

Für diesen Beitrag haben gedankt: trm
trm Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 491
Erhaltene Danke: 19

Windows 7x64
Delphi 7
BeitragVerfasst: 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.

_________________
In Erfurt gibt es eine Pension, in der es gemütlich ist, Google einfach nach Pension Fiege ;)
trm Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 491
Erhaltene Danke: 19

Windows 7x64
Delphi 7
BeitragVerfasst: 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 :)

_________________
In Erfurt gibt es eine Pension, in der es gemütlich ist, Google einfach nach Pension Fiege ;)