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
Seite 2 von 2     12   
DelTurbo

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

AW: Kotaktgruppen aus Kontakte von Outlook

  Alt 23. Jul 2015, 11: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
 
#12

AW: Kotaktgruppen aus Kontakte von Outlook

  Alt 23. Jul 2015, 12: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.212 Beiträge
 
Delphi 2007 Architect
 
#13

AW: Kotaktgruppen aus Kontakte von Outlook

  Alt 23. Jul 2015, 14: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
DelTurbo

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

AW: Kotaktgruppen aus Kontakte von Outlook

  Alt 25. Jul 2015, 10:06
Hi,
schade das keiner weiß was da schief läuft. Ich habe nun auch aufgegeben. Im netz findet man nix. Nur Beispiele die das DistListItem missachten.

Falls noch einer eine Lösung oder eine Idee hat werde ich es gerne Testen.

Gruß
Alle meine Rechtschreibfehler sind Urheberrechtlich geschützt!!
  Mit Zitat antworten Zitat
zeras

Registriert seit: 11. Mär 2007
Ort: Saalkreis
1.643 Beiträge
 
Delphi 12 Athens
 
#15

AW: Kotaktgruppen aus Kontakte von Outlook

  Alt 25. Jul 2015, 11:51
Nach meinem Wissen ist jede Kontaktgruppe auch wieder eine Liste. Somit kannst du nicht mit dem Index vom ContactFolder.Items.Count durchsteppen.

Bei mir geht es so:

Delphi-Quellcode:
procedure TForm6.Button1Click(Sender: TObject);
const
  olFolderContacts = $0000000A;

var
  outlook, NameSpace, ContactFolder, Item, myDistList: OleVariant;
  i, j: 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
        //Memo1.Lines.Add(Item.Firstname + Item.LastName);
     end
     else if Item.Class = 69 then // ein DistListItem
     begin

      //wir haben eine Kontaktliste und diese wollen wir auslesen

      myDistList := Item;

      for j := 1 to myDistList.MemberCount do begin
        Memo1.Lines.Add(myDistList.DLName); // Liefert --> TestGruppe (TestGruppe hat ein Mitglied. Max Mustermann)
        Memo1.Lines.Add(myDistList.GetMember(j).Name); // liefert --> Max Mustermann
      end;

     end;
   end;
  Outlook := UnAssigned;
end;
Matthias
Es ist nie falsch das Richtige zu tun!
- Mark Twain
  Mit Zitat antworten Zitat
DelTurbo

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

AW: Kotaktgruppen aus Kontakte von Outlook

  Alt 25. Jul 2015, 12:06
Hi,
das ist richtig. Dort gibt es einen eigenen Count. Aber über DIESEN GetMember bekommt man nur den Name. Weder Firstname noch Lastname, Telefon oder sonstwas in der Art.

Das hatte ich auch erst versucht und war happy. Bis ich versuchte an die anderen Daten zu kommen.

Gruß und Danke für die mühe....
Alle meine Rechtschreibfehler sind Urheberrechtlich geschützt!!
  Mit Zitat antworten Zitat
zeras

Registriert seit: 11. Mär 2007
Ort: Saalkreis
1.643 Beiträge
 
Delphi 12 Athens
 
#17

AW: Kotaktgruppen aus Kontakte von Outlook

  Alt 25. Jul 2015, 12:18
Ich habe meine Kontaktgruppe aus den vorhandenen Kontakten zusammengestellt. Da könnte es sein, dass du dann den Namen und weitere Details aus der vorhandenen Kontaktliste lesen musst. Vielleicht ist das auch nur ein Link auf einen vorhandenen Namen.
Aber das nur meine Annahme, da ich bisher nichts mit Kontakten gemacht habe.
Matthias
Es ist nie falsch das Richtige zu tun!
- Mark Twain
  Mit Zitat antworten Zitat
DelTurbo

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

AW: Kotaktgruppen aus Kontakte von Outlook

  Alt 25. Jul 2015, 12:31
Da bist du im Vorteil. Ich habe bisher nix mit Outlook gemacht. Ich dachte mir schon das es "hässlich" wird.

Und wieder was nicht beantwortet. Ich trööte.....

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.
Nein, sind normale User.
Alle meine Rechtschreibfehler sind Urheberrechtlich geschützt!!

Geändert von DelTurbo (25. Jul 2015 um 12:35 Uhr)
  Mit Zitat antworten Zitat
zeras

Registriert seit: 11. Mär 2007
Ort: Saalkreis
1.643 Beiträge
 
Delphi 12 Athens
 
#19

AW: Kotaktgruppen aus Kontakte von Outlook

  Alt 25. Jul 2015, 19:18
Ich komme immer mehr zu der Erkenntnis, dass du nur weiterkommst, wenn du dir den Namen oder die Emailadresse merkst und dann in der normalen Kontaktliste nach dem Namen oder der Emailadresse suchst. Das sollte erst mal eine Lösung sein, die funktioniert.
In meinem Outlook sehe ich bei den Gruppen nur den Namen und die Emailadresse. Ein Anklicken auf die Eigenschaften eines Eintrages geht bei mir nicht.
Willst du es nicht so versuchen?
Matthias
Es ist nie falsch das Richtige zu tun!
- Mark Twain
  Mit Zitat antworten Zitat
DelTurbo

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

AW: Kotaktgruppen aus Kontakte von Outlook

  Alt 26. Jul 2015, 10:40
Hi,
ich habe nun gemerkt, das wenn man einen Kontakt in der Gruppe hat und ihn dann aus den "normalen" Kontakten löscht, so das er nur noch in der Gruppe vorhanden ist, man keine Mail mehr dorthin schicken kann.

Man kann nur die Gruppe auswählen. Den einzelnen Kontakt nicht mehr. Das heißt um Umkehrschluss das der Kontakt 2x da sein MUSS. Außer man möchte keine Mail mehr dahinschicken.

Will man trotzdem eine Mail zu solch einem Kontakt schicken, muss man die Gruppe wählen, dann ob im Feld an auf das + Zeichen klicken und alle anderen Empfänger löschen. Bissl umständlich.

Da ich nun davon ausgehe das die Kontakte auch in "Kontakte" stehen, lasse ich es erst mal so. Ich find es trotzdem erstaunlich das nicht geht, so wie es bei MS bzw. von Sir Rufo beschrieben ist.

Falls er (mein bekannter) doch die Gruppen lesen möchte, also Gruppe wählen und dann den Empfänger wählen möchte, dann werde ich es so machen wie du beschrieben hast. Ich glaube auch fast das es die einzige Möglichkeit ist.

Gruß und nochmals danke
Alle meine Rechtschreibfehler sind Urheberrechtlich geschützt!!
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


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 12:40 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz