AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Delphi Kotaktgruppen aus Kontakte von Outlook
Thema durchsuchen
Ansicht
Themen-Optionen

Kotaktgruppen aus Kontakte von Outlook

Ein Thema von DelTurbo · begonnen am 21. Jul 2015 · letzter Beitrag vom 26. Jul 2015
Antwort Antwort
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#1

AW: Kotaktgruppen aus Kontakte von Outlook

  Alt 21. Jul 2015, 16:25
DistListItem hat eine Methode https://msdn.microsoft.com/en-us/lib...getmember.aspx.
Diese liefert einen https://msdn.microsoft.com/en-us/lib...recipient.aspx zurück.
Dies hat eine Eigenschaft https://msdn.microsoft.com/en-us/lib...ressentry.aspx was uns auch ein https://msdn.microsoft.com/en-us/lib...ressentry.aspx liefert.
Und das hat dann schlussendlich eine Methode https://msdn.microsoft.com/en-us/lib...etcontact.aspx um den Kontakt zu bekommen.

Das war das kleine Doku-EinmalEins ...

Darauf kommen kann man aber auch durch
Bei Google suchenoutlook distlistitem recipient get contactitem
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
DelTurbo

Registriert seit: 12. Dez 2009
Ort: Eifel
1.248 Beiträge
 
Delphi 2007 Architect
 
#2

AW: Kotaktgruppen aus Kontakte von Outlook

  Alt 22. Jul 2015, 07:27
Natürlich Google ich (und durchsuche das Forum) IMMER bevor ich überhaupt frage. Problem ist aber wenn man bei Google nicht weiß was man fragen soll. Ich hatte nach z.b. DistListItem +Firstname gesucht. Das ist aber nur eine von zig suchen.

Was ich aber auch erstaunlich fand, ist das ALLE Beispiele die ich gefunden habe, sei es Delphi, VB, C(++) diese DistlistItem missachten. Nicht ein example hat die Class abgefragt. Das muss doch dann genauso "scheppern" wie bei mir, wenn Gruppen angelegt sind.

Ich werde mich nun dranmachen und "versuchen" das umzusetzen was du geschrieben hast.

Auf jeden fall vielen vielen dank für deine Hilfe.
Alle meine Rechtschreibfehler sind Urheberrechtlich geschützt!!
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#3

AW: Kotaktgruppen aus Kontakte von Outlook

  Alt 22. Jul 2015, 08:45
Ich wette da haben einige "ganz Schlaue" einfach blind von einem abgeschrieben.

Compiliert und läuft unter Idealbedingungen. Mit dem Thema wirklich auseinandergesetzt hat sich da niemand (bis auf den Ersten, aber der hat das auch nur mit der heissen Nadel zusammengeklopft).

Es gibt übrigens in der Doku auch eine komplette Liste der Klassen-Nummern. Da ist man gut beraten, diese als Konstanten zu definieren
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
DelTurbo

Registriert seit: 12. Dez 2009
Ort: Eifel
1.248 Beiträge
 
Delphi 2007 Architect
 
#4

AW: Kotaktgruppen aus Kontakte von Outlook

  Alt 22. Jul 2015, 09:36
Hi Sir Rufo,
also, ich scheine auch zu dumm zu sein. Ich bekomme es nicht hin.

Item.GetMember(1).AddressEntry.GetContact.FirstName müsste doch richtig sein, oder? z.b. Item.GetMember(1).AddressEntry.Name geht. Dort bekomme ich den Namen zurück.

Sobald ich aber GetContact hinter AddressEntry habe, kommt die Fehlermeldung...

Das element kann nicht gefunden werden.

Langsam Zweifel ich bissl an mir. Ich nutze das in folgendem System...

Windows 7 x64
Outlook 2010
Delphi 2007

Das "Programmgerüst" ist oben das von dir. Wäre toll wenn du mir noch einmal Helfen könntest.

Gruß und danke im Voraus
Alle meine Rechtschreibfehler sind Urheberrechtlich geschützt!!
  Mit Zitat antworten Zitat
DelTurbo

Registriert seit: 12. Dez 2009
Ort: Eifel
1.248 Beiträge
 
Delphi 2007 Architect
 
#5

AW: Kotaktgruppen aus Kontakte von Outlook

  Alt 23. Jul 2015, 10:28
Hi,
ich habe nun wirklich alles durch was mir eingefallen ist. Ich habe auch eine Outlook_Tlb erstellt. Dort ist unter dem Eintrag

AddressEntry = interface(IDispatch) ein Eintrag der heißt function GetContact: _ContactItem; safecall;
Gehe ich richtig in der Annahme das die Funktion da sein MUSS? Wenn ja, das verstehe ich wirklich nicht warum ich immer "Das element kann nicht gefunden werden." bekomme.

Damit versuche ich an den Vornamen zu kommen.

WriteLn('GetMember: '+Item.GetMember(1).AddressEntry.GetContact.FirstName);

Was mache ich falsch???? Es wäre wirklich schade wenn der Thread als Leiche zurück bleiben würde.

Gruß und danke im Voraus
Alle meine Rechtschreibfehler sind Urheberrechtlich geschützt!!
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#6

AW: Kotaktgruppen aus Kontakte von Outlook

  Alt 23. Jul 2015, 11:23
Wenn du so darauf zugreifst Item.GetMember(1).AddressEntry.GetContact.FirstName und du dann den Fehler
Zitat:
Das element kann nicht gefunden werden.
bekommst, dann hast du die Dokumentation nicht komplett gelesen.

Denn dort steht explizit:
Zitat:
A ContactItem object that corresponds to the AddressEntry. Returns Nothing (a null reference (Nothing in Visual Basic) in C#) if the AddressEntry object does not correspond to a contact in a Contacts Address Book.
Und was sonst soll das System zurückliefern, wenn du den Vornamen von nichts lesen willst?

Hast du dir auch schon die anderen Methoden angeschaut?
  • GetExchangeUser
  • GetExchangeDistributionList
Und um was für Einträge handelt es sich denn in der Gruppe? Sind das evtl. Exchange-User?

Da du nur vage Angaben machst kannst du auch nur vage Aussagen bekommen.
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
DelTurbo

Registriert seit: 12. Dez 2009
Ort: Eifel
1.248 Beiträge
 
Delphi 2007 Architect
 
#7

AW: Kotaktgruppen aus Kontakte von Outlook

  Alt 23. Jul 2015, 13:18
Huhu,
ich hoffe ich habe dich nun nicht verärgert. Aber du hast sicherlich schon gemerkt das wir nicht auf dem selben Level sind. Etwas übertrieben gesagt bin ich froh über jede If abfrage die klappt.

Aber du hast recht. Ich hatte es zwar gelesen aber anders verstanden. Obwohl man es eigentlich nicht falsch verstehen kann. Da ich so lange an dem Problem gesessen habe, habe ich einfach nicht drüber nachgedacht. So was passiert leider.

Hier nochmal alles was (nach der änderung) immernoch zu dem Fehler führt. Leider weiß ich nicht was ich immer noch Falsch mache.

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
const
  olFolderContacts = $0000000A;
var
  outlook, NameSpace, ContactFolder,Item: OleVariant;
  i: Integer;
begin
  outlook := CreateOleObject('Outlook.Application');
  NameSpace := outlook.GetNameSpace('MAPI');
  ContactFolder := NameSpace.GetDefaultFolder(olFolderContacts);
   for i := 1 to ContactFolder.Items.Count do
   begin
     Item := ContactFolder.Items.Item(i);
     // Hier stellt sich bei dem Item die berühmte Frage: "Was bin ich?"
     if Item.Class = 40 then // ein ContactItem
     begin
        WriteLn(Item.Firstname);
     end
     else if Item.Class = 69 then // ein DistListItem
     begin
      WriteLn(Item.MemberCount); // Liefert --> 1
      WriteLn(Item.DLName); // Liefert --> TestGruppe (TestGruppe hat ein Mitglied. Max Mustermann)
      WriteLn(Item.GetMember(1)); // liefert --> Max Mustermann
      WriteLn(Item.GetMember(1).AddressEntry); // liefert --> Max Mustermann
      WriteLn(VarIsNull(Item.GetMember(1).AddressEntry)); // Liefert False
      if not VarIsNull(Item.GetMember(1).AddressEntry) then
      begin
        WriteLn('Firstname: '+Item.GetMember(1).AddressEntry.GetContact.FirstName); // Erste Gelegenheit für Exception bei $752FC41F. Exception-Klasse EOleException mit Meldung 'Das Element kann nicht gefunden werden'. Prozess Project1.exe (1544)
      end;
     end;
   end;
  Outlook := UnAssigned;
end;

Du sagtest das meine Angaben "etwas vage" wären. Ich hoffe das ist nun richtig. Wenn nicht dann schreibe doch bitte was du wissen willst/musst.


Nochmals, vielen dank für deine Geduld und die Hilfe.
Alle meine Rechtschreibfehler sind Urheberrechtlich geschützt!!
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:42 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz