none
請教撰寫.net cf程式長時間在pda執行問題 RRS feed

  • 問題

  • 各位先進大大我有一個問題想請教各位大大,

    小弟撰寫一支pda程式它會長時間在pda手機上執行,

    開始於執行程式,結束於關閉程式,

    但現在小弟遇到一個問題,

    就是pda手機通常有一定的時間限制即會關閉螢幕,接著就進入待機模式(省電模式),

    小弟目前問題來了,

    1.有沒有什麼方法可以讓程式在pda自動關閉螢幕或進入待機模式的情況下,程式仍然繼續執行(該程式會一直傳資料回gps),

    2.或許是有什麼語法讓以讓當這支程式被執行時,就永遠不會進入待機模式與關閉螢幕,就是我們在執行gps 衛星導航系統時,我們的pda手機不是都會永遠不會進入待機模式,不知有沒有這種語法,

    以上是我的問題,

    不知有沒有大大可以提供我的問題,

    謝謝

     

    2008年9月27日 上午 12:44

解答

  •  

    可以參考一下 Windows Mobile 6 SDK\Samples\Common\CPP\Win32\PowerManager

    提供下列API

  • GetSystemPowerState function
  • ReleasePowerRequirement function
  • RequestPowerNotifications function
  • SetPowerRequirement function
  • SetSystemPowerState function
  • StopPowerNotifications function

    不然就是

    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power registry key. A value of 0 will disable the action.

    Registry value name Default value Description

    BattPowerOff

    300 (5 minutes)

    While running on battery power, the number of seconds without user input activity before the system suspends.

    ExtPowerOff

    0 (disabled)

    While running on external power, the number of seconds without user input activity before the system suspends.

    WakeupPowerOff

    60 (1 minute)

    Following a non-user input event wakeup such as an alarm, the number of seconds without user input activity before the system suspends.

    ScreenPowerOff

    0 (disabled)

    Number of seconds without user input activity before GWES posts an APM_POWERBROADCAST, PBT_APMUSERIDLE message to the registered taskbar window.

2008年9月27日 上午 04:15

所有回覆

  •  

    可以參考一下 Windows Mobile 6 SDK\Samples\Common\CPP\Win32\PowerManager

    提供下列API

  • GetSystemPowerState function
  • ReleasePowerRequirement function
  • RequestPowerNotifications function
  • SetPowerRequirement function
  • SetSystemPowerState function
  • StopPowerNotifications function

    不然就是

    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power registry key. A value of 0 will disable the action.

    Registry value name Default value Description

    BattPowerOff

    300 (5 minutes)

    While running on battery power, the number of seconds without user input activity before the system suspends.

    ExtPowerOff

    0 (disabled)

    While running on external power, the number of seconds without user input activity before the system suspends.

    WakeupPowerOff

    60 (1 minute)

    Following a non-user input event wakeup such as an alarm, the number of seconds without user input activity before the system suspends.

    ScreenPowerOff

    0 (disabled)

    Number of seconds without user input activity before GWES posts an APM_POWERBROADCAST, PBT_APMUSERIDLE message to the registered taskbar window.

2008年9月27日 上午 04:15
  • 感謝大大提供的資料,小弟將會找時間嘗試,若其它大大還有其它解法,也歡迎大大們提供,

    謝謝

     

    2008年9月28日 上午 02:59
  • 像衛星導航軟體一直開著,可持續呼叫SystemIdleTimeReset()的WinCE API,
    將系統閒置計時器做reset的動作,因此就不會進入待機模式

    至於多久呼叫一次,可參考
    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power

    例如registry裡面設定1分鐘後關閉電源,你可以用timer每50秒呼叫一次
    就可以避免電源被關閉
    但是要注意,因為裝置持續開啟,電池會很快就沒電
    2008年10月8日 下午 01:31