如何编写一个由用户设置时间的警报程序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, 
                      &notification);

相同的名称将适用于 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 设置“签到”警报?

如何让多个 Windows 用户(非管理员)修改并保存相同的设置?

如何在警报视图中提示用户输入文本

如何在swift UI Test下检查应用程序状态

如何在警报通知上自动启动应用程序?