如何编写一个由用户设置时间的警报程序windows mobile app,,,,,,
Posted
技术标签:
【中文标题】如何编写一个由用户设置时间的警报程序windows mobile app,,,,,,【英文标题】:How to write an alarm program windows mobile app where the time is set by user,,,,,, 【发布时间】:2010-12-21 13:04:33 【问题描述】:我正在尝试为 PocketPc 6 模拟器和 wince 6.0 编写报警程序,
我尝试使用 CeRunAppAtTime 和 CeSetUserNotification 之类的
HANDLE hNotify;
SYSTEMTIME sysTime,sys;
CE_USER_NOTIFICATION ceNot;
GetSystemTime(&sysTime);//tryed GetLocalTime(&sys); also
sysTime.wHour = 14;
sysTime.wMinute= 20;
sysTime.wSecond= 00;
ceNot.ActionFlags = PUN_SOUND | PUN_VIBRATE | PUN_LED;
ceNot.pwszSound = L"\\Windows\\beep.wav";
hNotify = CeSetUserNotification(NULL,L"\\ResidentFlash\\my.exe",&sysTime,&ceNot);
但是当控件到达这一行本身时,它会执行所有操作,,,,,,,,我不想要这种功能,它必须在指定时间执行操作,,,,,, ,
请指导我完成此任务的正确方法,,,,,,,,,任何回复提前感谢,,,,,,谢谢,,,,,,,,,
【问题讨论】:
【参考方案1】:您的通知代码告诉操作系统在 14:20:00 运行您的应用程序,这就是将会发生的事情(我假设这就是您所说的“它执行所有操作”的意思)。如果您希望它只在应用程序中执行特定任务,最简单的方法是让它设置一个命名系统事件,如下所示:
CeSetUserNotification(NULL,
_T("\\\\.\\Notifications\\NamedEvents\\MyAppEvent"),
&time,
¬ification);
相同的名称将适用于 CeRunAppAtTime。设置通知后,在后台线程中等待应用中的事件:
hEvent CreateEvent(NULL, FALSE, FALSE, _T("MyAppEvent"));
while(TRUE)
if(WaitForSingleObject(hEvent, 5000) == WAIT_OBJECT_0)
// the notification has fired. Do something.
【讨论】:
以上是关于如何编写一个由用户设置时间的警报程序windows mobile app,,,,,,的主要内容,如果未能解决你的问题,请参考以下文章
如何使用地理围栏和 CLCircularRegion 设置“签到”警报?