Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Outlook Kontakte lesen (https://www.delphipraxis.net/60101-outlook-kontakte-lesen.html)

commandah 3. Jan 2006 10:33


Outlook Kontakte lesen
 
moin.

Ich habe ein kleines Problem, ich möchte gerne die Email Adressen aus den Outlook Kontakten lesen.
Bis jetzt mache ich es so:

Delphi-Quellcode:
procedure TForm1.GetContacsEmail;
const
  olFolderContacts = $0000000A;
var
  outlook, NameSpace, Contacts, Contact: OleVariant;
  i: Integer;
begin
  outlook := CreateOleObject('Outlook.Application');
  NameSpace := outlook.GetNameSpace('MAPI');
  Contacts := NameSpace.GetDefaultFolder(olFolderContacts);
  for i := 1 to Contacts.Items.Count do
  begin
    Contact := Contacts.Items.Item(i);
    edit4.text:=edit4.Text+Contact.Email1Address + ';';
  end;

  Outlook := UnAssigned;

end;
Jetzt gibt es aber das Problem, das Outlook für jeden Zugriff die Frage an den Benutzer stellt, ob der Zugriff auf den Kontakt zugelassen werden soll.

Das ist für den Benutzer natürlich doof wenn er 100 Kontakte oder so hat, denn dann kommt die Frage von Outlook 100 mal.

Gibt es da noch eine andere möglichkeit? bzw kann man es irgendwie so machen, das wenn der Benutzer bei der Outlook frage auf nein klickt, das ich darauf reagieren kann und dann meine Aktion abbrechen kann, und dass wenn der Benutzer auf Ja klickt, dass Outlook die Frage nicht mehr stellt?

Luckie 3. Jan 2006 10:39

Re: Outlook Kontakte lesen
 
Zitat:

Zitat von commandah
Gibt es da noch eine andere möglichkeit? bzw kann man es irgendwie so machen, das wenn der Benutzer bei der Outlook frage auf nein klickt, das ich darauf reagieren kann und dann meine Aktion abbrechen kann, und dass wenn der Benutzer auf Ja klickt, dass Outlook die Frage nicht mehr stellt?

Ich hoffe nicht. Überleg mal was das für Würmer bedeuten würde, wenn das so einfach möglich wäre... :-?

Aber man kann sein Programm von Microsoft zertifizieren lassen, was allrdings einiges kostet. ;)

commandah 3. Jan 2006 10:46

Re: Outlook Kontakte lesen
 
aber würde es nicht reichen, wenn der Benutzer die Frage nur einmal beantworten muss?
Denn gegen die Frage selber hab ich ja gar nichts, und ich finde auch, dass Sicherheit vor geht.

Aber ich möchte dem Benutzer gerne die möglichkeit geben Kontakte zu importieren.

Und soweit ich weiß können viele würmer immernoch irgendwie kontakte ziehen. denn sonst hätten sich viele ja nicht so schnell verbreitet oder?

Gibt es denn wenigstens die möglichkeit zu prüfen, ob der Benutzer bei der ersten Frage mit Nein geantwortet hat oder nicht?

ste_ett 3. Jan 2006 11:17

Re: Outlook Kontakte lesen
 
Zitat:

Zitat von commandah
Gibt es denn wenigstens die möglichkeit zu prüfen, ob der Benutzer bei der ersten Frage mit Nein geantwortet hat oder nicht?

Wenn du auf "Nein" klickst und dann auf das Objekt zugreifst gibt es eine Exception.
EOleSysError "Unbekannter Fehler"

Bernhard Geyer 3. Jan 2006 11:26

Re: Outlook Kontakte lesen
 
Zitat:

Zitat von commandah
Jetzt gibt es aber das Problem, das Outlook für jeden Zugriff die Frage an den Benutzer stellt, ob der Zugriff auf den Kontakt zugelassen werden soll.

Das ist für den Benutzer natürlich doof wenn er 100 Kontakte oder so hat, denn dann kommt die Frage von Outlook 100 mal.

Gibt es da noch eine andere möglichkeit?

Es gibt bei Outlook noch 'ne Plugin-Schnittstelle die ohne diese Warnmeldung auskommt. Hat jedoch den Nachteil das dein Programm (oder der Plugin-Teil) in Outlook registriert sein muss. Für genaure Infos darfst Du selber googeln da ich auch kein genaues Beispiel parat habe.

memphis 3. Jan 2006 11:39

Re: Outlook Kontakte lesen
 
Hallo

Der Benutzer hat beim Warndialog die Möglich keit, bei "Zugriff gewähren für" ein Häcken zu setzten und einen bestimmten Zeitraum einzustellen. Wenn er also beim erstenmal den Zeitraum auf "1 Minute" stellt, brauch er die frage nicht 100mal beantworten. (unter der Voraussetzung du hasst inerhalb einer Minute alle Kontakte importiert :wink:).

Weiters glaube ich mich erinnern zu können, dass dieser Dialog nur bei Zugriff auf die E-Mail Adressen eines Kontaktes erscheint. Wenn es also nicht unbedingt ein E-Mail Programm ist und du auf die E-Mail Adresse verzichten kannst, und nur Daten wie Name, Adresse, Telefon.. benötigst, erscheint die Warnung ebenfalls nicht.

[EDIT]Habe überlesen, dass er wirklich nur auf E-Mail Adressen Zugreifen will. [/EDIT]

Grüsse
Luki

wurz3l 3. Jan 2006 11:45

Re: Outlook Kontakte lesen
 
Es müsste allerdings eine möglichkeit geben, denn es gibt sehr viele Programm die etwas wie oben beschrieben machen, oder ähnliches.
Die Abfrage kommt normalerweise 1x und man kann dann für x Minuten den Zugang für das angegebene Programm freischalten.

Edit: Habe es gerade mal bei mir getestet, ich kann die Zeit einstellen und werde dann auch nur 1x gefragt. Habe mal einfach dein Code von oben an einen Button gebunden, wenn ich diesen kurze Zeit später nochmals drücke, bekomme ich wieder den Dialog angezeigt.
Was natürlich auch daran liegt, das er pro gedrückten Button eine neue Verbindung zu Outlook herstellt.

Welche Version hast du denn?

Heffalump 3. Jan 2006 12:04

Re: Outlook Kontakte lesen
 
Es geht ohne Sicherheitshinweise. Schaut Euch das Beispiel Example # 4. Ich habe mir das Package zugelegt und mir dieses Beispiel (im Sourcecode) angeschaut. Das Beispiel greift auf das Adressbuch zu, zeigt alle Einträge (inkl. der Mailadressen an). Keine Zauberei, keine Zertifizierung, kein Addin oder ähnliches, sondern ein externes Programm das auf legale Weise auf die Extended Mapi zugreift.

commandah 3. Jan 2006 14:59

Re: Outlook Kontakte lesen
 
also bei mir gehts nicht....
er sagt das irgendeine globala datei nicht existiert.
und ich denke aussserdem dass es nur bei exchange servern funzt.

Heffalump 3. Jan 2006 16:16

Re: Outlook Kontakte lesen
 
Liste der Anhänge anzeigen (Anzahl: 1)
Der Sourcecode wurde, wie du richtig festgestellt hast, auf den Exchangeserver getrimmt. Habe mal versucht das Programm ein bischen anzupassen (Fehlermeldungen sind daher nicht ausgeschlossen).


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:32 Uhr.
Seite 1 von 2  1 2      

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