Laden...

idle time UI

Erstellt von quickie vor 19 Jahren Letzter Beitrag vor 19 Jahren 1.416 Views
quickie Themenstarter:in
62 Beiträge seit 2004
vor 19 Jahren
idle time UI

hallo zusammen,

habe eine applikation auf dem pocket pc erstellt, suche jetzt eine möglichkeit herauszufinden wie lange der user inaktiv war, also kein element mehr angeklickt hat. gibts da ne elegante lösung oder muss ich nen timer o.ä verwenden und ihn jedes mal resetten sobald er irgendwas anklickt (da graust es mir davor 😉 )

grüße und vielen dank,

florian

C
980 Beiträge seit 2003
vor 19 Jahren

Graust es dir vor dem Timer ansich oder nur vom jeweiligen Rücksetzen des Timers? Falls die Auflösung nicht absolut genau sein muss kannst sonst das Resetten bleiben lassen und stattdessen einfach bei jeden Tick eine integer Variable inkrementieren - dann kannst einfach bei jeder Aktion die Variable auf 0 zurücksetzen. Wenn du diese beiden Operationen gleich atomisch nutzt (bin nicht sicher ob das im Compact Framework auch geht) musst du das ganze nicht mal synchronisieren ...

quickie Themenstarter:in
62 Beiträge seit 2004
vor 19 Jahren

hallo,

vielen dank für die antwort. mir graust davor an tausend stellen im code eine variable zu inkrementieren. das projekt ist zwar nicht übermäßig groß (etwa so 12 forms), aber überall zu prüfen ob ein button geklickt (eine scrollbar verschoben usw.) wurde, scheint mir ein wenig overkill oder übersehe ich was?

grüße,

florian

49.485 Beiträge seit 2005
vor 19 Jahren

Hallo quickie,

ich denke die Nicht-Idle-Erkennung lässt sich schon weitestgehend zentralisieren, z.B. könntest du alle Forms von einer eigenen Klasse NonIdleForm ableiten, die eine Methode InitNonIdle anbietet, die bei allen enthaltenen Controls

foreach (Control ctrl in Controls)

einen Click-EventHandler hinzufügt

ctrl.Click += new EventHandler (NonIdleClick);

In diesem NonIdleClick setzt die NonIdleForm-Klasse dann deinen Zähler hoch oder was auch sonst zu tun ist. Ähnliches kann man für Tastatur-Ereignisse machen. Man muss dann nur noch NonIdleForm nach dem Erzeugen aller Controls im Kontruktor der Unterklassen aufrufen.

Evtl. wäre es aber auch eine Alternative globale Hooks zu Erkennung zu verwenden. Die Forumsuche nach Hook sollte da was Brauchbares zu Tage fördern.

HTH

herbivore