Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Delphi Programm nach keiner Benutzeraktion nach 10 min schließen (https://www.delphipraxis.net/156922-programm-nach-keiner-benutzeraktion-nach-10-min-schliessen.html)

itblumi 20. Dez 2010 17:17

Programm nach keiner Benutzeraktion nach 10 min schließen
 
Hallo Leute,

ich habe eine Anwendung geschrieben die über viele Formulare verfügt.
Jetzt möchte ich gern, dass meine Anwendung nach 10 min geschlossen wird, wenn der
Benutzer keine Eingabe gemacht hat.
Ich möchte nicht in jedem Formular auf jeder Schaltfläche prüfen ob etwas gemacht wird.
Habt ihr Vorschläge wie man das global machen kann?

Bummi 20. Dez 2010 17:21

AW: Programm nach keiner Benutzeraktion nach 10 min schließen
 
In Application Events KeyEvents und MouseEvents nutzen um "LastActivity=now" zu setzen.
Ein Timer der jede Sekunde prüft ob LastActivity länger als 10 Minuten her ist.

s.h.a.r.k 20. Dez 2010 17:52

AW: Programm nach keiner Benutzeraktion nach 10 min schließen
 
Alernativ kenne ich folgendes System: wenn du ein Programm startest, dann wird eine "Session" gestartet, die nach x Minuten abläuft, selbst wenn der User die Applikation nutzt. Es gibt eine Schaltfläche, über welche der User diese Session verlängern kann -- hier wäre auch denkbar, dass man nur n mal den Button klicken darf. Somit muss der Benutzer immer aktiv auf einen Button klicken!

Ganz wichtig ist bei beiden Verfahren, dass du den Benutzer über die "Restlaufzeit" benachrichtigst, sodass er weiß, wann sich die Applikation schließt.

Bummi 20. Dez 2010 21:00

AW: Programm nach keiner Benutzeraktion nach 10 min schließen
 
@s.h.a.r.k
Totmannschaltung ;-)

itblumi 20. Dez 2010 21:07

AW: Programm nach keiner Benutzeraktion nach 10 min schließen
 
Zitat:

In Application Events KeyEvents und MouseEvents nutzen um "LastActivity=now" zu setzen.
Ein Timer der jede Sekunde prüft ob LastActivity länger als 10 Minuten her ist.
Leider gibt es aber direkt bei der Application keine Key/Mouse Events, die gibt es nur in den Formularen oder gibt es eine Methode die direkt aus der API zu implementieren? Wenn ja könntest du mir ein Beispiel geben.

Zitat:

Alernativ kenne ich folgendes System: wenn du ein Programm startest, dann wird eine "Session" gestartet, die nach x Minuten abläuft, selbst wenn der User die Applikation nutzt. Es gibt eine Schaltfläche, über welche der User diese Session verlängern kann -- hier wäre auch denkbar, dass man nur n mal den Button klicken darf. Somit muss der Benutzer immer aktiv auf einen Button klicken!

Ganz wichtig ist bei beiden Verfahren, dass du den Benutzer über die "Restlaufzeit" benachrichtigst, sodass er weiß, wann sich die Applikation schließt.
Der Benutzer muss sich nach dieser Zeit neu im System anmelden und ein Button auf den er immer klicken muss ist nicht sehr Benutzerfreundlich. Spätestens nach 10 klicks würde mir das auf den Geist gehen.

Jens Hartmann 20. Dez 2010 21:09

AW: Programm nach keiner Benutzeraktion nach 10 min schließen
 
Wie wäre es den mit folgender Lösung...

Delphi-Quellcode:
function LastInput: DWord;
var LInput: TLastInputInfo;
begin
  LInput.cbSize := SizeOf(TLastInputInfo);
  GetLastInputInfo(LInput);
  Result := GetTickCount - LInput.dwTime;
end;

//Aufruf über TTimer
try
  if Lastinput > CancelTime then //CancelTime bei 10min 1000*60*10
    UserCancelling;
except
  //
end;
Gruß Jens

s.h.a.r.k 20. Dez 2010 21:27

AW: Programm nach keiner Benutzeraktion nach 10 min schließen
 
Zitat:

Zitat von itblumi (Beitrag 1069679)
Der Benutzer muss sich nach dieser Zeit neu im System anmelden und ein Button auf den er immer klicken muss ist nicht sehr Benutzerfreundlich. Spätestens nach 10 klicks würde mir das auf den Geist gehen.

Das kommt auf die Anforderungen des System selbst drauf an. Ist eben nur eine Alternative Idee. Wobei mir der Mehraufwand sehr wohl bewusst ist.

Bummi 20. Dez 2010 21:38

AW: Programm nach keiner Benutzeraktion nach 10 min schließen
 
DELETED

EDIT:
nimm die Routine von Jens Hartmann

itblumi 21. Dez 2010 06:52

AW: Programm nach keiner Benutzeraktion nach 10 min schließen
 
Danke an alle die mir geholfen haben. Die Funktion ist echt Klasse, Danke Jens.


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:42 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