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
DelTurbo

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

Kotaktgruppen aus Kontakte von Outlook

  Alt 21. Jul 2015, 12:22
Hallo,
ich suche mich schon dusselig. Ich habe folgenden Code.

http://www.swissdelphicenter.ch/de/showcode.php?id=897

Der wird hier im Forum öfters erwähnt. Das klappt auch wunderbar. Problem ist allerdings wenn man eine Kontaktgruppe hat. Dann kommt folgender Fehler:
Die Methode 'FirstName' wird vom Automatisierungsobjekt nicht unterstützt.

Wie komme ich an die Daten die in den Kontaktgruppen stehen?


Vielen dank 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
 
#2

AW: Kotaktgruppen aus Kontakte von Outlook

  Alt 21. Jul 2015, 13:47
Jedes Item hat eine Eigenschaft Class und die hat bei einem ContactItem den Wert 40 und bei einem DistListItem den Wert 69.

Daran kannst du diese unterscheiden.
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.237 Beiträge
 
Delphi 2007 Architect
 
#3

AW: Kotaktgruppen aus Kontakte von Outlook

  Alt 21. Jul 2015, 14:08
Hi,
erstmal danke für die Antwort. Schau mal was ich gemacht habe. Wo müsste denn die Class stehen und wie wechslen ich dann in die Gruppe?

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
const
  olFolderContacts = $0000000A;
var
  flds, outlook, NameSpace, Contacts, Contact: OleVariant;
  i: Integer;
begin
  outlook := CreateOleObject('Outlook.Application');
  NameSpace := outlook.GetNameSpace('MAPI');

  Contacts := NameSpace.GetDefaultFolder(olFolderContacts);
  flds := NameSpace.Folders(1);
  WriteLn(flds.Name); //<<--- Ich dachte hier müsste die erste Gruppe stehen, sofern vorhanden.
  for i := 1 to Contacts.Items.Count do
  begin
    Contact := Contacts.Items.Item(i);
    Writeln('-----------------------');
    WriteLn('Vor und Nachname: '+Contact.FirstName+' '+Contact.LastName); //Wenn es eine Gruppe ist, gibt es hier den Fehler: Die Methode 'FirstName' wird vom Automatisierungsobjekt nicht unterstützt.
    WriteLn('Firma: '+Contact.CompanyName);
    WriteLn('FirmaTel.: '+Contact.BusinessTelephoneNumber);
    WriteLn('FirmaFax: '+Contact.BusinessFaxNumber);
    WriteLn('EMailadr.: '+Contact.Email1Address);
    WriteLn('Adresse: '+Contact.BusinessAddress);
    WriteLn;
  end;

  Outlook := UnAssigned;
end;
Nicht wundern wenn es sch.... aussieht. Ich Fummel da nun schon lange dran rum. Das habe ich mir auf folgenden Seiten "zusammen gereimt".

http://www.delphipraxis.net/101082-b...-auslesen.html
https://msdn.microsoft.com/de-de/lib.../ff860950.aspx

Ich bekomme aber nur meine Mailadresse zurück. Nicht den Namen der Gruppe die ich in Kontakte angelegt habe.

Nehme ich statt Namespace.Folders(1); Contacts.Folders(1); kommt Array-Index außerhalb des zulässigen Bereichs.
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
 
#4

AW: Kotaktgruppen aus Kontakte von Outlook

  Alt 21. Jul 2015, 14:23
Der größte Fehler ist die Benamung der Variablen, denn die führen dich aufs falsche Gleis. Ein weiterer Fehler ist, dass du es bislang versäumt hast in die Doku zu schauen.

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
const
  olFolderContacts = $0000000A;
var
  flds, 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

    end
    else if Item.Class = 69 then // ein DistListItem
    begin

    end;
  end;

  Outlook := UnAssigned;
end;
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.237 Beiträge
 
Delphi 2007 Architect
 
#5

AW: Kotaktgruppen aus Kontakte von Outlook

  Alt 21. Jul 2015, 15:00
Hi,
erst mal 1.000 dank für deine Hilfe. So ergibt es sinn. Wie gesagt, ich änder an dem Code seit gestern rum. Wenn ich ehrlich bin habe ich schon nixmehr gepeilt.

Eine einzige Frage hätte ich da noch. Keine angst, gegoogelt hab ich schon. Ich find aber nicht wie ist an die Daten in der Distlist komme. Mit .MemberCount kann ich die schleife "eröffnen". Dann kann ich mit GetMember(i) die Daten hohlen. Ich finde aber nur .Name. Kann man das nicht FirstName, LastName, CompanyName usw. abfragen?

EDIT:
Nachtrag: So wie ich das sehe muss das ähnlich FindFirst, Findnext laufen. Richtig? Also Rekursiv.

Nachtrag 2: Ich kann die EntryID lesen. Ist es vielleicht damit möglich an die Daten zu kommen?
Alle meine Rechtschreibfehler sind Urheberrechtlich geschützt!!

Geändert von DelTurbo (21. Jul 2015 um 15:59 Uhr) Grund: Nachtrag
  Mit Zitat antworten Zitat
DelTurbo

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

AW: Kotaktgruppen aus Kontakte von Outlook

  Alt 21. Jul 2015, 16:52
Tut mir leid. Habe nun die ganze Zeit gesucht. Finde nur diese Seiten. Auch ALLE Beispiele die ich gefunden habe, missachten das DistListItem. Das heißt im Umkehrschluss ich komme an dieser Stelle einfach nicht weiter. Wäre toll wenn dir nochwas einfällt.

Das find ich zu ContactItem
https://msdn.microsoft.com/en-us/lib...roperties.aspx

Das zu DistListItem
https://msdn.microsoft.com/en-us/lib...roperties.aspx

Netten Gruß und danke im Voraus
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:02 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 by Thomas Breitkreuz