当您在 Outlook 中标记要跟进的邮件时,它会出现红旗。当您再次标记它时,标志会变为勾号并显示任务完成时间。如何从 C# 应用程序获取/设置这个时间?
我试过使用 mailitem TaskCompletedDate
,但它只返回日期(而不是时间)。我也试图找到分配给标记消息的任务,但也没有管理。我究竟做错了什么?我应该在哪里寻找它?
我正在使用 Outlook 2007 和 2010。
提前感谢您的答案。
我不确定您需要的实际属性,但大多数 mailitems 属性和方法都记录在 MSDN 上:
http://msdn.microsoft.com/en-us/library/aa210946(v=office.11).aspx
注意:请务必检查您所针对的 Outlook 版本。2007+ 还有其他属性。
编辑
根据 MSDN,这个属性确实是DateTime
:
至于为什么它只记得日期部分我无法解释。仅供参考,我相信TaskCompleteDate
是UTC。
我找到了解决方法。我仍然不知道 Outlook 将与给定消息相关的 taksitem 保存在哪里,但我正在使用 Outlook 表格来显示必要的数据。表格可以为我检索所需的数据,然后我从表格的单元格中检索它。
帮助我做到这一点的代码在这里:http: //msdn.microsoft.com/en-us/library/ff184632.aspx
存储完成日期的列(单元格)称为“标记完成日期”。它显示整个日期时间值,而不仅仅是日期。
这种方法的缺点是您仍然无法直接访问该值并且您无法设置它,只能获取它。
您可以使用 mailItems propertyAccessor
。
要得到:
myMailItem.PropertyAccessor.GetProperty("http://schemas.microsoft.com/mapi/proptag/0x10910040")
设置(以发送日期为例):
call myMailItem.PropertyAccessor.SetProperty("http://schemas.microsoft.com/mapi/proptag/0x10910040",myMailItem.PropertyAccessor.LocalTimeToUTC(myMailItem.SentOn))