请教在pocket pc电源设置关闭设备时间到了后,触发的系统消息是什么

xw1980xw 2007-05-30 03:17:47
我在开发中遇到了一个问题。在cmwap通讯中,我每个1分钟向服务器发送一个同步消息,如果我5分钟没有与服务器同步,服务器就认为我断开了,我发现在电源设置中设置关闭设备时间后,等到时间到是,关闭了设备,同时系统也把timer给关掉了,我无法向服务发送消息了,请问我能在应用中屏蔽掉这个消息吗?如何解决?
...全文
309 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
nikalee 2007-08-18
  • 打赏
  • 举报
回复
我一般把时间设置成20秒,效率上影响也不大
nikalee 2007-08-18
  • 打赏
  • 举报
回复
恩,SystemIdleTimerReset();这个是王道
jinhaijian 2007-08-18
  • 打赏
  • 举报
回复
提醒一下,RequestPowerNotifications函数在pm.h中,只有安装了Platform Builder才有这个函数。
我把函数原型附上,
HANDLE RequestDeviceNotifications(
const GUID* devclass,
HANDLE hMsgQ,
BOOL fAll
);
Requirements
OS Versions: Windows CE .NET 4.0 and later.
Header: Winbase.h.
Link Library: Coredll.lib

jinhaijian 2007-08-18
  • 打赏
  • 举报
回复
通过RequestPowerNotifications来设置对Power状态的通知。
MSGQUEUEOPTIONS Msgqueueop;
Msgqueueop.dwSize = sizeof(MSGQUEUEOPTIONS);
Msgqueueop.dwMaxMessages = 0;
Msgqueueop.bReadAccess = TRUE;
Msgqueueop.cbMaxMessage = MAX_SIZE;
Msgqueueop.dwFlags = MSGQUEUE_NOPRECOMMIT;
HANDLE m_hMsgQueue = CreateMsgQueue(NULL,&Msgqueueop);
// HANDLE hr =
RequestPowerNotifications(m_hMsgQueue, PBT_TRANSITION); //POWER_NOTIFY_ALL
然后创建一个线程去监听Power改变的消息
DWORD ThreadID;
HANDLE m_hthread = CreateThread(NULL, 0,BroadcastQueueProcess,(PVOID)NULL,0,&ThreadID);

线程函数:
DWORD WINAPI BroadcastQueueProcess(PVOID pvParam)
{

HANDLE hMsgQueue = threadpara->hMsgQueue;

WCHAR cMsg[MAX_SIZE];
DWORD dwByteRead, dwFlag;

while(TRUE)
{

DWORD dw = WaitForSingleObject(hMsgQueue, INFINITE);
switch(dw)
{
case WAIT_OBJECT_0:
{
// BOOL br =
ReadMsgQueue(hMsgQueue,(LPVOID)cMsg,MAX_SIZE, &dwByteRead,INFINITE,&dwFlag);
POWER_BROADCAST *PB = (POWER_BROADCAST*)cMsg;

if(!wcscmp(PB->SystemPowerState, L"unattended"))
{

}
else if(!wcscmp(PB->SystemPowerState, L"suspend"))
{

}
else if(!wcscmp(PB->SystemPowerState, L"on"))
{

}
}
default:
break;
}

}

return 0;
}

代码不全,自己整理整理
phoenixdz 2007-08-16
  • 打赏
  • 举报
回复
SystemIdleTimerReset()
Channels_net 2007-06-05
  • 打赏
  • 举报
回复
我也想知道,电源掉电,PDA 的外围设备停止工作,用 notification 好象得不到 这个消息
Mobile_Writer 2007-06-04
  • 打赏
  • 举报
回复
建议自己定义一个notification

7,657

社区成员

发帖
与我相关
我的任务
社区描述
Windows Phone是微软发布的一款手机操作系统,它将微软旗下的Xbox LIVE游戏、Zune音乐与独特的视频体验整合至手机中。
社区管理员
  • Windows客户端开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧