Как написать приложение для будильника Windows Mobile, где время задается пользователем ,,,,,, - PullRequest
0 голосов
/ 21 декабря 2010

Я пытаюсь написать программу для эмулятора 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 Ответ

0 голосов
/ 21 декабря 2010

Ваш код уведомления указывает ОС запускать ваше приложение в 14:20:00, так что это именно то, что произойдет (я полагаю, это то, что вы подразумеваете под «выполнением всех действий»).Если вы хотите, чтобы оно выполняло только определенную задачу внутри вашего приложения, проще всего сделать так, чтобы оно установило именованное системное событие следующим образом:

CeSetUserNotification(NULL, 
                      _T("\\\\.\\Notifications\\NamedEvents\\MyAppEvent"), 
                      &time, 
                      &notification);

То же имя будет работать для CeRunAppAtTime.После того, как вы настроили уведомление, в фоновом потоке waiot для события в вашем приложении:

hEvent CreateEvent(NULL, FALSE, FALSE, _T("MyAppEvent"));
while(TRUE)
{
    if(WaitForSingleObject(hEvent, 5000) == WAIT_OBJECT_0)
    {
        // the notification has fired.  Do something.
    }
}
...