Gå til innhold

Hvordan detektere inaktivitet?


Anbefalte innlegg

Skrevet

Jeg lager en databasefrontend i delphi og skulle gjerne hatt en funksjon som logger ut brukeren dersom det ikke har vært noen aktivitet i et gitt intervall. Ser for meg noe slikt:

 

keyboard eller mouse event lagrer tidspunkt til en variabel

en ontimer kjøres med passende mellomrom og skjekker om tiden > variabelen+intervall

i så fall logg ut

 

evt

 

keyboard eller mouse events resetter en timer

ontimer ser på hvor langt timeren har kommet

hvis timer > intervall : logg ut.

 

Jeg kan behandle mouse eller keyboard events på form-nivå. Problemet er imidlertid at applikasjonen består av mange forms, hvorav ca halvparten er basert på en templateform jeg har definert selv, mens resten er basert rett på tform, har lite lyst til å lage enda et lag med arv her...

 

Nå mens jeg skriver, er jeg muligheten:

TForm 
  |
  V
TAppForm (custom key og mouse eventhandler) -> Div forms, nå basert på TForm
  |
  V
TFTemplate (Eksiserende grunnlag for datentryforms i applikasjonen

Vil bli litt fiklete å dytte inn TAppForm i hieriarkiet, men det er kanskje eneste løsningen dersom jeg ikke vil legge inn ny key og mouse handler i samtlige skjemaer..

 

M.

Videoannonse
Annonse
Skrevet (endret)

dropp en TApplicationEvents og en TTimer.

 

sett timeren til 60000, så vil dette lukke programmet etter 10 min med inaktivitet.

 

implementation

 

var

x:integer = 0;

 

{$R *.dfm}

 

procedure TForm1.ApplicationEvents1Message(var Msg: tagMSG;

var Handled: Boolean);

 

begin

case msg.message of

WM_MOUSEFIRST..WM_MOUSELAST: x:= 0;

WM_KEYFIRST..WM_KEYLAST: x:= 0;

end;

end;

 

procedure TForm1.Timer1Timer(Sender: TObject);

begin

inc(x);

if x > 10 then close;

end;

Endret av gerri28

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...