none
WPF - Benutzterinaktivität erkennen und danach Methode ausführen

    Frage

  • Hey,

    nehmen wir mal an Ich habe:

    MainWindow
    UserControl
    LoginWindow

    Zuerst muss man sich über LoginWindow anmelden und wird anschließend zum MainWindow  gebracht, der ein ContentControl bestitzt, auf dem das UserControl angezeigt wird.

    Sagen wir ich habe eine Methdoe, mit der ich LoginWindow öffne (z.b openLoginWindow() ).

    Wie schaffe ich es, wenn der eingeloggte Benutzer 5 min lang nicht mit dem Programm interagiert, wieder zum LoginWindow zu springen? - sprich Benutzeraktivität erkennen und danch openLoginWindow() ausführen.

    Danke im vorraus :)))

    Mittwoch, 11. Juli 2018 12:55

Antworten

  • Hi Micha,
    das Hauptproblem besteht darin, was "... nicht mit dem Programm interagiert …" sein soll. Wenn der Anwender nur den Bildschirm betrachtet und z.B. liest, dann kann man nur die Augenrichtung und den Augenaufschlag als Ereignis auswerten. Wenn damit jedoch die Betätigung der Maus oder Tastatur gemeint ist, dann ist eine einfache >Lösung ein Zustandsautomat. Jede Betätigung befördert den Automaten in einen neuen Zustand. Das Ausbleiben eines neuen Zustandes kann dann als Kriterium der fehlenden Interaktion genutzt werden. In WPF können die Preview-Ereignisse der Tastatur und der Maus im äußersten Container (z.B. Window) genutzt werden, die entweder einen Zeitstempel setzen, der zyklisch (z.B. Zeitgeber) ausgewertet wird oder auch in einem parallelen Thread ein Zeitintervall jeweils neu gestartet wird, nachdem der vorherige Intervall abgebrochen wurde.

    --
    Viele Grüsse
    Peter Fleischer (ehem. MVP)
    Meine Homepage mit Tipps und Tricks

    • Als Antwort markiert michad2151 Donnerstag, 12. Juli 2018 12:26
    Mittwoch, 11. Juli 2018 17:47

Alle Antworten

  • Hi Micha,
    das Hauptproblem besteht darin, was "... nicht mit dem Programm interagiert …" sein soll. Wenn der Anwender nur den Bildschirm betrachtet und z.B. liest, dann kann man nur die Augenrichtung und den Augenaufschlag als Ereignis auswerten. Wenn damit jedoch die Betätigung der Maus oder Tastatur gemeint ist, dann ist eine einfache >Lösung ein Zustandsautomat. Jede Betätigung befördert den Automaten in einen neuen Zustand. Das Ausbleiben eines neuen Zustandes kann dann als Kriterium der fehlenden Interaktion genutzt werden. In WPF können die Preview-Ereignisse der Tastatur und der Maus im äußersten Container (z.B. Window) genutzt werden, die entweder einen Zeitstempel setzen, der zyklisch (z.B. Zeitgeber) ausgewertet wird oder auch in einem parallelen Thread ein Zeitintervall jeweils neu gestartet wird, nachdem der vorherige Intervall abgebrochen wurde.

    --
    Viele Grüsse
    Peter Fleischer (ehem. MVP)
    Meine Homepage mit Tipps und Tricks

    • Als Antwort markiert michad2151 Donnerstag, 12. Juli 2018 12:26
    Mittwoch, 11. Juli 2018 17:47
  • Hey Peter,

    ich verstehe wie du es meinst und denke dass es so funktionier, danke!!
    Donnerstag, 12. Juli 2018 12:26