默认的WINCE设置是会自动挂起的,在电源管理界面里设置从不自动挂起后能够禁止它自动挂起,同时修改了以下一些注册表:

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\Timeouts]

  "ACUserIdle"=dword:0 ; in seconds

  "ACSystemIdle"=dword:0 ; in seconds

  "ACSuspend"=dword:0 ; in seconds

  "BattUserIdle"=dword:0 ; in seconds

  "BattSystemIdle"=dword:0 ; in seconds

  "BattSuspend"=dword:0 ; in seconds

  "BattPowerOff"=dword:0

  "ExtPowerOff"=dword:0

  "WakeupPowerOff"=dword:0

  "ScreenPowerOff"=dword:0


但当使用了hive 注册表时即使在定制OS的时候就将以上的值设置好仍然会自动挂起,而在WINCE的电源管理界面查看这些值是正确的,实际上是以上注册表信息是存储到system.hv中,一般情况下加载pm.dll的时候还无法从其它存储器中读取system.hv,pm.dll在无法读取这些注册表值的时候就会使用一些默认值,而这些默认值是会进行自动suspend的,所以需要在system.hv能够读取后使用如下代码让系统重新读取超时设置。

HANDLE hevReloadActivityTimeouts =   

  OpenEvent(EVENT_ALL_ACCESS, FALSE, _T("PowerManager/ReloadActivityTimeouts"));

  if (hevReloadActivityTimeouts) {

  SetEvent(hevReloadActivityTimeouts);

  CloseHandle(hevReloadActivityTimeouts);

  }  


这部分由应用程序或者其它驱动来完成都可以。