Как получить задачи, о которых вам напоминает Windows Mobile? - PullRequest
0 голосов
/ 05 февраля 2010

В Windows Mobile, если вы создаете задачу, вы можете установить дату и время, чтобы напомнить вам о задаче.

Когда настанет время напомнить вам о задаче, Windows Mobile воспроизведет звук и покажет уведомление пользователя, которое сохраняется до тех пор, пока вы его не отклоните.

Теперь я хотел бы знать, попадало ли какое-либо задание (сколько?) В эту стадию «напомнить мне».

Моей первой попыткой было SystemState.TasksOverdue, но это , а не задач, о которых система напоминает, это задачи, которые пропустили срок исполнения, что является чем-то другим. То же самое и с другими свойствами SystemSta.Tasks ...: ни одно из них не относится к задачам, о которых система хочет вам напомнить.

Есть ли способ получить задачи, которые система активно напоминает вам прямо сейчас?

О, я программирую на c # и .Net CF 2.0.

Ответы [ 3 ]

1 голос
/ 08 февраля 2010

Ответ на этот вопрос может помочь, вы можете попробовать просмотреть активные уведомления и посмотреть, сможете ли вы определить, какие из них являются задачами?

0 голосов
/ 08 февраля 2010

Вы используете API CeSetUserNotficiationEx . Я не уверен, существует ли C # версия этого API, но вы должны быть в состоянии P / Invoke достаточно легко.

Другой способ - использовать CeRunAppAtTime для запуска / уведомления вашего приложения о событии и отображения уведомления самостоятельно. Затем вы можете использовать более изящный SHNotificationAdd API. SHNotificationAdd доступен только на устройствах с КПК (сенсорный экран).

Извините, я неправильно прочитал вопрос, поэтому мой ответ неверен.

0 голосов
/ 05 февраля 2010

У меня нет опыта работы с этим, но я думаю, я бы посмотрел на TaskCollection , который возвращает список текущих задач. Зацикливаясь на этом, вы можете просмотреть свойства ReminderSet, ReminderTime и StartDate класса Task , чтобы определить, какие задачи в данный момент находятся в «стадии напоминания».

int activeRemindingTasks = 0;
OutlookSession session = new OutlookSession();

for (Task t in session.Tasks.Items)
{
  if (t.ReminderSet && t.ReminderTime <= DateTime.Now)
  {
    activeRemindingTasks++;
  }
}

Единственное, что я не знаю, это то, что происходит, когда пользователь отклоняет напоминания, а не откладывает их. Я предполагаю, что свойство ReminderSet или ReminderRepeat объекта Task затем вернет false, но вам придется проверить, так ли это.

...