Piszę prosty dodatek do programu Outlook i muszę ustawić wymaganych uczestników na spotkanie.
Do tego używam następującego kodu:
...
Outlook.AppointmentItem appointment theCurrentAppointment =
Inspector.CurrentItem as Outlook.AppointmentItem;
String attendees = appointment.RequiredAttendees;
/// attendees is empty if names are not checked
/// otherwise has the correct value
Ten kod działa dobrze tylko wtedy, gdy używam funkcji nazw kontrolnych (CTRL + K), w przeciwnym razie zwraca pusty ciąg znaków.
Możliwe jest programowe sprawdzanie nazw wymaganych uczestników (do spotkania) w języku C #?
Przepraszam, ale C # nie jest moim językiem programowania i nie wiem, czy używam właściwych terminów.
Jak odtworzyć błąd:
- Naciskam na nowe powołanie
- Dodaję wymaganego uczestnika
- Naciskam przycisk wywołujący moją funkcję
Jak rozwiązać problem (ręcznie, nie programowo)
- Naciskam na nowe powołanie
- Dodaję wymaganego uczestnika
- Wciśnij CTRL + K
- Naciskam przycisk wywołujący moją funkcję
Przed zapisaniem terminu muszę znać wartość RequiredAttendees. Więc nie mogę go zapisać, a następnie sprawdzić wartość RequiredAttendees.
Odpowiedzi:
2 dla odpowiedzi № 1Przed sprawdzeniem listy uczestników uważam, że najpierw musisz zapisać pozycję spotkania przez:
AppointmentItem.Save ();
Odniesienie: https://msdn.microsoft.com/en-us/library/microsoft.office.interop.outlook._appointmentitem.save.aspx
Po zapisaniu otrzymaj ponownie ten obiekt spotkania i uruchom kod potrzebny do uzyskania wymaganych uczestników (jak poniżej).
Zmienna uczestnicy zmiennej będą zawierać ciąg rozdzielany średnikami, zawierający nazwy wszystkich uczestników.
Stamtąd możesz przetworzyć go przez:
string [] names = attendees.Split (";");
która zwróci tablicę nazwisk uczestników.
Zobacz _AppointmentItem.RequiredAttendees Właściwość, aby uzyskać więcej informacji.
0 dla odpowiedzi nr 2
Zamiast używać właściwości RequiredAttendees, przeprowadź pętlę przez wszystkich odbiorców w kolekcji Odbiorcy i sprawdź to Recipient.Type == olTo
(wymagany).