Frage

Guten Morgen,

Ich bin der Entwickler einer mittelgroßen PDA-Anwendung, die auf den Straßen verwendet werden wird. Der PDA wird einige vage sensible Daten (Namen und Anschriften, etc.) enthalten. Die Verschlüsselung auf der mobilen Datenbank bereits behandelt, aber wenn jemand halten den PDA bekam, während er angemeldet wurde sie glücklich durch die Daten gehen konnte, bis die Batterie gestorben oder sie geschlossen, um die Anwendung und musste sich erneut anmelden.

Wenn die Benutzer Zugriff auf die PDA-Anwendung sie benötigen, um ihre Benutzernamen und PIN-Nummer einzugeben. Version 1 diese Software hatte ein Ereignis in jede Taste in dem System angeschlossen, so dass, wenn die Taste gedrückt wurde, ist es eine Variable aktualisiert genannt LastActionTime. Ein Timer lief auf dem Hauptformular und wenn das LastActionTime vor mehr als 10 Minuten ist dann würde das System wieder das Anmeldeformular werfen, bis der vorherige Benutzer / admin wieder angemeldet zurück (wie der Windows-Lockout-Bildschirm).

Das hat gut funktioniert ... in einem gewissen Sinn ... das Problem mit diesem ist, dass es nur Tasten wurde die Handhabung und die andere war Kontrollen nicht Handhabung, wie Listviews, PictureBox, etc.

Gibt es eine gute Möglichkeit, dies zu erreichen? Zum Beispiel ist es eine Möglichkeit, eine Windows Form-Klasse erweitern könnte jedes einzelnes Ereignis zu behandeln und diese Variable entsprechend aktualisieren? Oder kann ich etwas windows-esque tun, die jede einzelne Maus-Ereignis auf dem Formular umgehen würde?

Um ganz präzise zu sein, ich will, was erreichen, dass ist, wenn der PDA-Bildschirm / Tasten haben 10 Minuten lang nicht berührt wurde, weiß der PDA dies und erlauben Sie mir, meine Aussperrung Methode abzufeuern.

Alle Gedanken, Hilfe und Anleitung würde sehr geschätzt werden.

Bearbeiten : Ich bin mit Compact Framework 2.0 auf Windows Mobile 6.0, aber die Funktion auf Windows Mobile 5.0 arbeiten muss und über

.
War es hilfreich?

Lösung

Eine mögliche Lösung ist auf dem PDA Eingabe Stromruhezustand zu verlassen. Sie können eine Benachrichtigung für diese Verwendung OpenNETCF.WindowsCE.PowerManager.PowerIdle Ereignis registrieren. In der Tat ist es eine gute Idee zu berücksichtigen Power-Management-Überlegungen zu nehmen. Sie können nicht erwarten, dass Ihr PDA im gleichen Zustand die ganze Zeit sein.

Eine andere Lösung wäre, die inaktiv Ereignis des Eingangstreibers zu überwachen (siehe diese link ). Jedoch ist diese Lösung sehr gerätespezifisch.

Leider gibt es keine Möglichkeit, in Windows CE eine globale Mausereignis Haken zu registrieren.

Die oben waren OS-Lösungen. Es gibt keine einfache Möglichkeit, es mit der Erweiterung Windows Form und Steuerklassen zu tun. Wahrscheinlich müssten Sie alle Steuerelemente erweitern Sie verwenden würde. Die einfachste Lösung wäre es, die GetFocus Methode für alle Kontrollen und Form zu implementieren. Sie könnten Ihre Zähler dort zurück.

Durch die Art und Weise, in einer Desktop-Umgebung dies mit GetLastInputInfo leicht erreicht werden.

Andere Tipps

Überprüfen Sie diesen Beitrag aus:

http: //social.msdn.microsoft.com/Forums/en-US/netfxcompact/thread/906b016d-f1ee-4b3e-b3df-1e3a6fea282a/

rang ich mit dem gleichen Problem, und endete mit Application.AddMessageFilter bis die entsprechenden Ergebnisse zu erzielen. Das Gewinde enthält schließlich einen Link zu einem Beispielprojekt habe ich die Inaktivitätstimer Arbeits zeigt, einschließlich Herunterfahren Subdialoge ggf. zu einem Hauptfenster Bildschirm zurückzukehren.

David

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top