2010-02-05 70 views
0

在windows mobile中,如果您創建任務,則可以設置截止日期和時間來提醒您有關任務。如何獲取Windows Mobile提醒您的任務?

當時間準備好提醒您有關任務時,Windows Mobile將播放聲音並顯示用戶通知,該通知一直存在,直到您解除該通知爲止。

現在我想知道是否有任何任務(有多少?)進入這個「提醒我」階段。

我的第一次嘗試是SystemState.TasksOverdue,但這些是而不是系統提醒您的任務,這些任務錯過了它們的截止日期,這是不同的。 與其他SystemSta.Tasks ...屬性相同:它們都不涉及系統想要提醒您的任務。

有沒有什麼辦法讓系統現在主動提醒你的任務?

哦,我使用c#和.Net CF 2.0編程。

回答

0

我對此沒有經驗,但我的猜測是看看TaskCollection,它返回當前任務的列表。通過循環查看,您可以查看Task類的ReminderSet,ReminderTime和StartDate屬性,以確定哪些任務當前處於「提醒階段」。

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

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

我唯一不知道的是當用戶解除提醒而不是打盹時發生的情況。我假設Task對象的ReminderSet或ReminderRepeat屬性將返回false,但是您必須檢查是否會發生這種情況。

+0

我試過了(當然使用ReminderTime代替StartDate),但是對於我的任務來說,ReminderSet總是如此,即使是被解僱的任務也是如此,所以這對我不起作用。 – Sam 2010-02-05 11:39:55

+0

@Sam:ReminderRepeat呢?你在說ReminderTime正在返回第一次提醒的時間? (只是這樣我才能編輯我的答案) – 2010-02-05 11:48:46

+0

ReminderRepeat對於我的任務總是虛假的,無論他們是主動,被解僱還是未來。並且ReminderTime始終設置爲我爲該任務輸入的日期時間,根本不會更改。 似乎還有一些其他的位置,Windows Mobile跟蹤這些位置。 – Sam 2010-02-05 11:59:53

-1

您使用的是CeSetUserNotficiationEx API。我不確定是否存在此API的C#版本,但您應該可以輕鬆地進行P/Invoke。

另一種方法是使用CeRunAppAtTime運行/通知您的應用程序的事件,並自己顯示通知。然後你可以使用更花哨的SHNotificationAdd API。 SHNotificationAdd僅在ppc設備(觸摸屏)上可用。

對不起,我誤解了這個問題,所以我的回答不正確。

1

對此question的回答可能會有幫助,您可以嘗試通過活動通知並查看是否可以檢測哪些是任務?

+0

JUP,這就是爲什麼我問這個問題,在閱讀第一個答案後:) – Sam 2010-02-08 12:13:29

+0

(有趣的是讓我自己的問題被提及作爲可能的答案) – Sam 2010-02-08 14:45:06

+0

糟糕,抱歉沒有注意到你也問過那個,當時我在想這是一個巧合,我剛剛閱讀了關於這個問題的答案几個問題回來:) – Matt 2010-02-09 02:29:38