最近this post啓發了我,我也想跟蹤自己的生活。掛鉤Windows Mobile 6.5手機開/關按鈕
每次進入睡眠或喚醒後,我都會查看手機的時鐘,因此我需要一些程序來掛接手機的開/關按鈕,並在按下時記錄時間戳。
我在HTC TyTN II上使用WM6.5。如果現有軟件可以通過少量設置和調整就可以完成此操作,那麼這將會很不錯,但我也可以自己編寫代碼。有什麼建議麼?
最近this post啓發了我,我也想跟蹤自己的生活。掛鉤Windows Mobile 6.5手機開/關按鈕
每次進入睡眠或喚醒後,我都會查看手機的時鐘,因此我需要一些程序來掛接手機的開/關按鈕,並在按下時記錄時間戳。
我在HTC TyTN II上使用WM6.5。如果現有軟件可以通過少量設置和調整就可以完成此操作,那麼這將會很不錯,但我也可以自己編寫代碼。有什麼建議麼?
您可以使用P/Invoking RequestPowerNotifications的設備電源通知來了解電源狀態何時發生更改(還有a CodeProject article也包含此功能)。請注意,斷電通知不會等待訂戶運行代碼,因此在大多數情況下,應用程序的處理程序在設備喚醒之前不會真正運行(這意味着如果您正在編寫時間戳或您正在去喚醒時間,而不是睡眠時間)。請注意,different devices handle power management differently,所以YMMV。
這比你想象的更棘手!
'開/關'按鈕不直接提供給操作系統(即它在鍵盤驅動程序中不可見),因爲它掛在一個相當複雜的電源崩潰系統中(基本上,應用程序CPU是完全的當電話關閉時關閉 - 調制解調器根據網絡配置的尋呼週期喚醒)。
兩個CPU的喚醒 - 睡眠交互非常複雜,並且容易出現競爭狀況。即使您設法掛鉤它(這將需要深入的內核級編程和一些安全攻擊),您可能會使手機非常不穩定。
http://social.msdn.microsoft.com/Forums/en/windowsmobiledev/thread/e5e7d68f-ee9f-480a-98c9-907b1e6d9e29 是這個解決方案合法? – est 2010-06-01 05:06:04
我還沒有運行代碼,但它看起來是合法的。它不是直接掛斷電源鍵,而是註冊接收電源狀態改變事件的通知。 MSDN在http://msdn.microsoft.com/en-us/library/aa917813%28v=MSDN.10%29.aspx上有導出的電源API文檔。您可能對還原通知PBT_RESTORE感興趣。 – 2010-06-01 07:38:01