挂起时如何在Windows Mobile上运行代码? 我想运行一些C++代码,而Windows Mobile PockPC则(或看起来)被挂起。我指的一个例子是HTC Home插件,其中显示了一个选项卡,HTC Audio Manager可用于播放mp3文件。当我按下on/off按钮时,显示屏变黑,但音频仍在播放。正如预期的那样,唯一可以重新打开的按钮是“开/关”按钮
到目前为止,我尝试的是捕获硬件按钮按下(工作)并关闭视频显示(工作)。这种方法不起作用的是,当(意外地)按下设备上的任何键时,视频显示会打开。我认为这不是HTC Audio Manager采用的方法挂起时如何在Windows Mobile上运行代码? 我想运行一些C++代码,而Windows Mobile PockPC则(或看起来)被挂起。我指的一个例子是HTC Home插件,其中显示了一个选项卡,HTC Audio Manager可用于播放mp3文件。当我按下on/off按钮时,显示屏变黑,但音频仍在播放。正如预期的那样,唯一可以重新打开的按钮是“开/关”按钮,c++,windows-mobile,suspend,C++,Windows Mobile,Suspend,到目前为止,我尝试的是捕获硬件按钮按下(工作)并关闭视频显示(工作)。这种方法不起作用的是,当(意外地)按下设备上的任何键时,视频显示会打开。我认为这不是HTC Audio Manager采用的方法 我猜是一些低级API魔术让它起作用,或者播放音频的代码以某种中断级别运行,或者设备进入不同的挂起模式。首先看看这个,以便了解各种电源状态。您基本上需要的是强制关闭ScreenOff状态。请看一下setSystemEmpowerState函数。我在上找到了解释该做什么的源代码,它按预期工作。要点是:
我猜是一些低级API魔术让它起作用,或者播放音频的代码以某种中断级别运行,或者设备进入不同的挂起模式。首先看看这个,以便了解各种电源状态。您基本上需要的是强制关闭ScreenOff状态。请看一下setSystemEmpowerState函数。我在上找到了解释该做什么的源代码,它按预期工作。要点是:
- 将设备设置为在进入“无人值守”模式时发送通知。这是通过
PowerPolicyNotify(PPN\u UNATTENDEDMODE,TRUE)
- 对于无人值守模式下需要的每个设备,请调用
;“gpd0:”设备是GPS中间驱动器;使用您需要的任何设备替换或复制呼叫,例如音频设备为“wav1:”,存储卡设备为“dsk1:”,串行端口1设备为“com1:”SetPowerRequirement(L“gpd0:”,D0,POWER\u NAME | POWER\u FORCE,NULL,NULL)
- 使用
RequestPowerNotifications(hMsgQueue,PBT_POWERINFOCHANGE | PBT_TRANSITION)创建消息队列并请求电源通知
- 每次发送电源通知时,消息队列都会充满
类型的结构power\u BROADCAST
- 查找
消息类型。然后,当设备关闭时(例如用户按下关闭按钮),字段PBT\u转换
包含一个字符串“无人值守”pPwrBrodcast->SystemPowerState
- 在这个转换过程中,只需调用
,告诉设备不要关闭SystemIdleTimerReset()
- 再次发生转换时重复此操作
- 关机时,调用
以离开无人值守模式,使用PowerPolicyNotify()
释放所有设备,并使用ReleasePowerRequirement()
停止接收电源通知stopperNotifications()