Ich schreibe ein Outlook-Plugin, das die Erstellung von Kalendereinträgen verfolgen muss. Ich verwende den folgenden Code zu erkennen, wenn etwas in den Kalender vom Benutzer hinzugefügt wird:Erfassen von Kalendereinträgen, die nur auf dem lokalen Computer erstellt wurden
foreach (Account acc in _outlookApplication.Session.Accounts)
{
var calendar = acc.DeliveryStore.GetDefaultFolder(OlDefaultFolders.olFolderCalendar);
var itemsCalendar = calendar.Items;
itemsCalendar.ItemAdd += new ItemsEvents_ItemAddEventHandler(OnMeetingCreated);
}
Das funktioniert gut auf dem lokalen Computer und das Ereignis ausgelöst wird richtig. Wenn der Benutzer jedoch zwei Computer mit demselben E-Mail-Konto eingerichtet hat, wird dieses Ereignis auch auf dem sekundären Computer ausgelöst, sobald Outlook auf dem sekundären Computer synchronisiert und die neu erstellten Besprechungselemente vom Benutzer auf dem primären Computer herunterlädt.
Gibt es eine Möglichkeit, Besprechungen zu ignorieren, die nicht vom Benutzer auf dem lokalen Computer erstellt wurden?
Jede Hilfe würde sehr geschätzt werden.
Danke für die Antwort. Leider werden die Kalenderelemente manuell von Benutzern erstellt oder indem eine Besprechungseinladung akzeptiert wird. Gibt es eine Möglichkeit, diesen Prozess abzufangen und den Eigenschaften ein eindeutiges Token hinzuzufügen, bevor das ItemAdd-Ereignis ausgelöst werden kann? – NASHA
Ja, behandeln Sie einfach die Application.NewInspector Ereignis- und Setup-Ereignisbehandlungsroutinen, die für das AppointmentItem-Objekt erforderlich sind (z. B. PropertyChange, Close usw.). –
Ah, wusste das nicht. Vielen Dank! – NASHA