仅检测在本地计算机上创建的日历项目
Detecting calendar items created on local machine only
我正在编写一个 Outlook 插件,它需要跟踪日历项的创建。我正在使用以下代码来检测用户何时将某些内容添加到日历中:
foreach (Account acc in _outlookApplication.Session.Accounts)
{
var calendar = acc.DeliveryStore.GetDefaultFolder(OlDefaultFolders.olFolderCalendar);
var itemsCalendar = calendar.Items;
itemsCalendar.ItemAdd += new ItemsEvents_ItemAddEventHandler(OnMeetingCreated);
}
这在本地机器上运行良好,事件正常触发。但是,如果用户在两台计算机上设置了相同的电子邮件帐户,一旦辅助计算机上的 Outlook 同步并下载了用户在主计算机上新创建的会议项目,该事件也会在辅助计算机上触发。
有没有办法以某种方式忽略不是由用户在本地计算机上创建的会议?
如有任何帮助,我们将不胜感激。
所有数据都在本地 PC 上创建,无论是在 .pst 还是 .ost 文件中。如果您的加载项正在创建该项目,而您想在 ItemAdd 事件中忽略或处理该项目,那么您将需要管理一个内存中的项目集合,您要与之进行比较。
或者,您可以将机器特定的标记添加到项目中的自定义 属性,并将其用作比较的标志。
我正在编写一个 Outlook 插件,它需要跟踪日历项的创建。我正在使用以下代码来检测用户何时将某些内容添加到日历中:
foreach (Account acc in _outlookApplication.Session.Accounts)
{
var calendar = acc.DeliveryStore.GetDefaultFolder(OlDefaultFolders.olFolderCalendar);
var itemsCalendar = calendar.Items;
itemsCalendar.ItemAdd += new ItemsEvents_ItemAddEventHandler(OnMeetingCreated);
}
这在本地机器上运行良好,事件正常触发。但是,如果用户在两台计算机上设置了相同的电子邮件帐户,一旦辅助计算机上的 Outlook 同步并下载了用户在主计算机上新创建的会议项目,该事件也会在辅助计算机上触发。
有没有办法以某种方式忽略不是由用户在本地计算机上创建的会议?
如有任何帮助,我们将不胜感激。
所有数据都在本地 PC 上创建,无论是在 .pst 还是 .ost 文件中。如果您的加载项正在创建该项目,而您想在 ItemAdd 事件中忽略或处理该项目,那么您将需要管理一个内存中的项目集合,您要与之进行比较。
或者,您可以将机器特定的标记添加到项目中的自定义 属性,并将其用作比较的标志。