2008-12-08 54 views
2

早上好後鎖定UI超時功能,Compact Framework的 - 不活動的時期

我將要在街道上使用了一箇中等大小的PDA應用程序的開發。 PDA將包含一些模糊的敏感數據(姓名和地址等)。移動數據庫上的加密已經被處理,但是如果有人在登錄PDA時拿到了PDA,他們可以愉快地瀏覽數據,直到電池耗盡或關閉應用程序並重新登錄。

當用戶訪問PDA應用程序時,他們需要輸入他們的用戶名和PIN碼。該軟件的版本1在系統中的每個按鈕上都有一個事件,這樣當按下按鈕時,它會更新一個名爲LastActionTime的變量。主窗體上運行一個計時器,如果LastActionTime超過10分鐘,系統會再次提示登錄表單,直到之前的用戶/管理員重新登錄(就像窗口鎖定屏幕一樣)。

這工作得很好...在某種意義上...與問題是,它只是處理按鈕和不處理其他控件,如列表視圖,PictureBoxes等

有什麼實現這個好方法?例如,是否有一種方法可以擴展Windows窗體類以處理每個事件並相應地更新該變量?或者我可以做一些windows-esque來處理窗體上的每一個鼠標事件?

爲了簡明扼要,我想要達到的目標是,當PDA屏幕/按鈕在10分鐘內沒有被觸摸時,PDA會知道這一點並允許我解鎖我的鎖定方法。

任何想法,幫助和指導將不勝感激。

編輯:我在Windows Mobile 6.0上使用Compact Framework 2.0,但該功能需要在Windows Mobile 5.0及更高版本上工作。

+0

考慮給你的平臺的更多詳細資料(的Windows Mobile 5或6的Windows CE) – kgiannakakis 2008-12-08 12:05:26

回答

3

一種可能的解決方案是依靠PDA進入電源空閒狀態。您可以使用OpenNETCF.WindowsCE.PowerManager.PowerIdle事件爲此註冊一個通知。實際上,考慮電源管理考慮是一個好主意。你不能指望你的PDA一直處於相同的狀態。

另一種解決方案是監視輸入驅動程序的不活動事件(請參閱此link)。但是,此解決方案非常適合設備。

不幸的是,Windows CE沒有辦法註冊全局鼠標事件鉤子。

以上是OS解決方案。擴展Windows Form和Control類並不是一種簡單的方法。可能你需要擴展你將要使用的所有控件。最簡單的解決方案是爲所有控件和表單實現GetFocus方法。你可以在那裏重置你的櫃檯。

順便說一下,在桌面環境中,可以使用GetLastInputInfo輕鬆實現。