0

我正在尝试为 PocketPc 6 模拟器和 wince 6.0 编写一个警报程序,其中警报时间由用户设置,在那个特殊的时间,win mobile 必须提供一些警报消息,,,,,

我尝试使用 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);

但是在这里,当控件本身到达这一行时,它正在执行所有操作,,,,,,,,,我不想要这种功能,它必须在指定时间执行操作,,,,,,,

请指导我完成这项任务的正确方法,,,,,,,,,任何回复提前感谢,,,,,,谢谢,,,,,,,,,

4

1 回答 1

0

您的通知代码告诉操作系统在 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.
    }
}
于 2010-12-21T14:50:15.363 回答