Zum Inhalt springen

[C#] Outlook Profil lesen


Empfohlene Beiträge

Geschrieben

Ich suche eine Möglichkeit mein eigenes Profil in Outlook auszulesen (Telefonnummer, Firma, Büro...).

Ich habe schon den Weg über das AddressEntry gefunden, aber da bekomm ich nur meinen Namen.

Über Contacts muss es wohl gehen, aber ich verstehe die Lösungen aus dem Internet noch nicht. Wer hat sowas schonmal gemacht?

Geschrieben

sorry ich kann kein edit klicken, kA warum da passiert nix

            Microsoft.Office.Interop.Outlook._Application outlook = new Microsoft.Office.Interop.Outlook.ApplicationClass();

            Microsoft.Office.Interop.Outlook.NameSpace ns = outlook.GetNamespace("MAPI");


            Microsoft.Office.Interop.Outlook.MAPIFolder cf = ns.GetDefaultFolder (Microsoft.Office.Interop.Outlook.OlDefaultFolders.olFolderContacts);


            Microsoft.Office.Interop.Outlook.Items ctcItems = cf.Items;

            Microsoft.Office.Interop.Outlook.ContactItem ctc;

            for (int j = 1; j < (ctcItems.Count + 1); j++)

            {

                ctc = (Microsoft.Office.Interop.Outlook.ContactItem)ctcItems[j];

                MessageBox.Show(ctc.FullName.ToString());

            } 

so weit kam ich nun. jetzt hab ich aber die "Kontakte". Will aber "Globale Adressliste" aufrufen, was muss ich neu setzen dafür?

Und so kann ich auch nur alle Kontakte durchlaufen, bis ich mich erreiche, ich brauch aber nur meins allein, geht das irgendwie per ID?

Geschrieben

    

Microsoft.Office.Interop.Outlook._Application outlookObj = new Microsoft.Office.Interop.Outlook.Application();

    Microsoft.Office.Interop.Outlook.MAPIFolder fldContacts =

(Microsoft.Office.Interop.Outlook.MAPIFolder)outlookObj.Session.GetDefaultFolder(Microsoft.Office.Interop.Outlook.OlDefaultFolders.olFolderContacts);

    Microsoft.Office.Interop.Outlook.Items searchFolder = fldContacts.Items;

    Microsoft.Office.Interop.Outlook.ContactItem contactItem = (Microsoft.Office.Interop.Outlook.ContactItem)searchFolder.GetFirst();


while (contactItem != null)

{

    contactItem = (Microsoft.Office.Interop.Outlook.ContactItem)searchFolder.GetNext();

    MessageBox.Show(contactItem.FirstName);

}

So, das funktioniert soweit, das ich aus meinen lokalen Kontakten laden kann, aber nicht aus dem Globaln Adressbuch. Und ein direkter Anspruch fehlt... Wer kann helfen

Geschrieben

Ich habe leider auch keine richtige Erfahrung, damit und kann es nicht testen, da ich keinen Exchange zu Hause habe.

Aber ich weiß in welcher Zeile das Problem liegt.

Microsoft.Office.Interop.Outlook.MAPIFolder cf = ns.GetDefaultFolder (Microsoft.Office.Interop.Outlook.OlDefaultFolders.olFolderContacts);

Hiermit greifst du auf den Default- Kontakt- Ordner zu und das ist meißt der Lokale.

Vielleicht hilft dir auch diese Seite OutlookCode.com - Developer Learning Center for Microsoft Outlook weiter.

mfg Hans-Jörg

Geschrieben
Microsoft.Office.Interop.Outlook.MAPIFolder cf = ns.GetDefaultFolder (Microsoft.Office.Interop.Outlook.OlDefaultFolders .olFolderContacts);

ja genau, der greifft auf die kontakte lokal zu, da klappts ja auch. nur kann ich unter DefaultFolders nur "Posteingang", "Aufgaben", "Notizen" etc auswählen. Jetzt die Frage, ob man FolderContacts auch von "Kontakte" auf "Globale Adressliste" umstellen kann. Hab ich noch nicht gefunden, falls es überhaupt gehen soll ;)

Werd mir gleich mal die Seite anschauen.

Geschrieben

edit geht immer noch nicht?!?

hab mal bissle rumgeschaut und auch bissle was gefunden.

ich bräuchte nicht die AdressEntries sondern die Items aus dem Folder.

Dann kann ich daraus ein ContacItem lesen, das die Felder kennt.

Komisch finde ich nur, das ich zum Thema AdressEntries nur VB.Net Code finde und da AdressEntry ein das Feld AdressEntry.Field hat. Da kann man dann schrebien AdressEntry.Field("PR_HOME_TELEPHONE_NUMBER") und dann hat man die Nummer vom Entry. C# Kennt AdressEntry.Field nicht. Wieso das denn?

Geschrieben

Also ich glaube es geht nicht.

Aber ich habe es trotzdem mal ausprobiert ;) zumindest gehts nicht, was meinen Versuch anbelangt.

Microsoft.Office.Interop.Outlook.AddressEntry

hat im C# kein Fields als Attribut, aber in VB scheinbar schon.

  • 2 Monate später...
Geschrieben

Hat jemand von euch jetzt das Problem lösen können mit dem Zugriff auf das Globale Adressbuch?!

Suche mir gerade einen Wolf, um auf das Adressbuch in der Ordnerstruktur

\\Öffentliche Ordner\alle Öffentlichen Ordner\Kontakte\Globales Adressbuch

zuzugreifen. Um Hilfe und Tipps wäre ich sehr dankbar :)

Grüße

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...