Как написать приложение для будильника Windows Mobile, где время задается пользователем,,,,,,
Я пытаюсь написать программу будильника для эмулятора 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.
}
}