Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Tastatureingabe in MSOutlook von delphi simulieren (https://www.delphipraxis.net/11112-tastatureingabe-msoutlook-von-delphi-simulieren.html)

bastianhansen 31. Okt 2003 10:54


Tastatureingabe in MSOutlook von delphi simulieren
 
Hallo,
ich habe das Problem, dass ich keine Vorstellung davon habe, wie ich einen Text, der im MemoPad von Delphi steht in das Feld in MSOutlook hineinkopiere, so dass der Text im Memofeld eben zum E-Mail-Text wird. Passieren soll das, wenn ich auf den Button "E-Mail senden" gehe.
Ich wäre echt froh, wenn mir da jemand helfen könnte, da das Programm, wofür ich dies benötige, von Kunden benutzt werden soll und die aber nur leere E-Mails schicken, da sie nicht die Anleitung gelesen haben :?

mr2 31. Okt 2003 11:12

Re: Tastatureingabe in MSOutlook von delphi simulieren
 
Hallo,

ich glaube Deine Vorgehensweise ist nicht gerade ideal.
MS Outlook hat ein leistungsfähiges Objektmodell, über das es automatisiert werden kann.
Dann braucht man nur noch zu schreiben:
Delphi-Quellcode:
  Msg.To := 'user@host.com';
  Msg.Subject := 'Betreff';
  Msg.TextBody := 'blabla';
  Msg.Send;
Such mal in der MSDN-Library nach "Outlook.Application".

mr2

bastianhansen 31. Okt 2003 15:03

Re: Tastatureingabe in MSOutlook von delphi simulieren
 
Hi,
ich habe es mit

Delphi-Quellcode:
Msg.To := 'user@host.com';
  Msg.Subject := 'Betreff';
  Msg.TextBody := 'blabla';
  Msg.Send;
in Delphi ausprobiert, aber er erwartet ein statement an stelle von 'user@host.com' und einen Identifier an stelle von To.

Ich habe auch bei MSDN gesucht, aber leider nichts brauchbares für delphi gefunden... :(

Wäre nett, wenn Du mir nochmal weiterhelfen könntest!!!

Ciao, Bastian

[edit=Daniel B]Delphi-Tags eingefügt. Mfg, Daniel B[/edit]

mr2 31. Okt 2003 17:06

Re: Tastatureingabe in MSOutlook von delphi simulieren
 
vielleicht hilft Dir das weiter:
Delphi-Quellcode:
const
  // Wert für EMails in Outlook
  OL_MAIL_ITEM       = $00000000;
var
  OutlApp, Msg: Variant;
begin
  try
    OutlApp := CreateOleObject('Outlook.Application');
    Msg := OutlApp.CreateItem(OL_MAIL_ITEM);
    Msg.To := 'hans@aol.com';
    Msg.Subject := 'Betreff';
    Msg.Body := 'BlaBla';
    Msg.Display(False);
    // Msg.Send;
  finally
    Msg := Unassigned;
    OutlApp := Unassigned;
  end;
mr2

bastianhansen 3. Nov 2003 16:38

Re: Tastatureingabe in MSOutlook von delphi simulieren
 
Hi mr2,
ich weiß leider noch nicht, ob mir das weiterhilft, da Delphi mir beim kompilieren sagt, dass "CreateOleObject" nicht definiert ist (oder so ähnlich).
Kann es sein, dass dies noch eingefügt werden muss?

fkerber 3. Nov 2003 17:15

Re: Tastatureingabe in MSOutlook von delphi simulieren
 
Hi!

Wenn mich nicht alles täuscht, muss da noch die Komponente OutlookApplication auf das Form.
Weiß aber nicht, wo die genau ist, hab nur D6 Personal und da gibts sowas nicht :(

Hoffe, es hilft trotzdem.

Ciao fkerber

bastianhansen 3. Nov 2003 17:35

Re: Tastatureingabe in MSOutlook von delphi simulieren
 
Ja, ich vermute, dass entweder noch etwas bei uses oder bei form create hineinmuss, hab aber leider nicht so viel Ahnung von diesem Bereich (Zugriff auf andere Programme von Delphi aus). Wenn jemand ein Online-Buch kennt, wo sowas übersichtlich beschrieben wird, kann mir auch sowas hier hineinschreiben!
Danke trotzdem für eure bisherigen Antworten, auch wenn sich noch kein Erfolg eingestellt hat :(

Ciao, Bastian

mr2 3. Nov 2003 22:18

Re: Tastatureingabe in MSOutlook von delphi simulieren
 
Hallo,

Delphi-Quellcode:
  uses
    ComObj;
CreateOleObject ist in ComObj.pas definiert. Die beiden wichtigsten Units für die Automatisierung von Anwendungen (per COM) sind ActiveX.pas und ComObj.pas - dort finden sich nahezu sämtliche Methoden.

Online-Buch kenne ich keins aber gedruckt ist Delphi COM Programming empfehlenswert.

CU mr2

bastianhansen 5. Nov 2003 11:09

Re: Tastatureingabe in MSOutlook von delphi simulieren
 
Thanks, das Problem ist behoben, allerdings kommt jetzt (oh Wunder)ein neues Problem auf und zwar wirft Delphi jetzt eine Exception mit dem Text :
Zitat:

Project[*].exe raised exception class EOleSysError with message 'Ungültige Klassenzeichenfolge'.

mr2 5. Nov 2003 19:13

Re: Tastatureingabe in MSOutlook von delphi simulieren
 
Hallo,

hast Du überhaupt Outlook installiert, oder etwa nur Outlook-Express?
Gibt es bei Dir den Registry-Schlüssel "HKEY_CLASSES_ROOT\Outlook.Application"?
Oulook Express lässt sich nicht automatisieren.

bastianhansen 6. Nov 2003 17:17

Re: Tastatureingabe in MSOutlook von delphi simulieren
 
Hi,

der reg-Eintrag ist vorhanden, aber ich glaube, dass nur Outlook Express installiert ist; hae mich nie ernsthaft damit auseinandergesetzt. Zumindest kann ich Dir genau sagen, dass ich WinXP Professional benutze (allerdings sollte das E-Mail senden auch von anderen Betriebssystemen aus über das Delphi-Programm möglich sein, zumindest idealerweise). Die eigentlichen User des Programms benutzen aber wohl eher die Home Version oder eben andere Versionen, da es Firmenangestellte sind..

Wenn es über den momentanen Weg aber nicht möglich ist, muss ich versuchen wieder auf der alten Schiene das Problem zu lösen, sprich Tastatureingabensimulation. Dafür benötige ich aber wohl nur den Code, wie ich dies bewerkstellige, während das Delphiprogramm im Hintergrund ist.

Ciao, Bastian

mr2 6. Nov 2003 21:18

Re: Tastatureingabe in MSOutlook von delphi simulieren
 
Hallo,

haben die Angestellten denn die Vollversion von Outlook?
Bei mir in der Firma hat jeder Outlook und das angegebene Schnipsel funktioniert mit sämtlichen Outlook-Versionen (95-2003) unter nahezu allen Windows-Betriebssystemen (95 - XP).
Wenn Du der einzige bist der kein Outlook hat, könntest Du es ja einfach mal installieren :)
Wenn nicht musst Du ShellExecute verwenden:
Delphi-Quellcode:
uses
  Shellapi;
var
  Command: string;
begin
  Command := 'mailto:hans@aol.com?subject=Betreff&body=BlaBla';
  ShellExecute(0, nil, PChar(Command), nil, nil, SW_SHOWNORMAL);
Dadurch wird der Standard-Mailclient geöffnet und eine Mail mit obigen Angaben erzeugt.
Ist einfach, hat aber den Nachteil dass man die Mail nicht aus dem Delphi-Programm versenden kann (der User muss nochmal clicken).

Außerdem gibt es ja noch MAPI (einfach mal in der DP danach suchen).

bastianhansen 12. Nov 2003 08:15

Re: Tastatureingabe in MSOutlook von delphi simulieren
 
OK,
soweit funktioniert es schon mal, allerdings wird der Text nicht mit den Formationen (ENTER) in die E-Mail eingebunden, sondern jede Zeile einfach hinten dran gehängt. Ich habe es schon mit
+ char(13) + probiert, wird aber nicht von Outlook Express übernommen. :(

fkerber 12. Nov 2003 17:22

Re: Tastatureingabe in MSOutlook von delphi simulieren
 
HI!

Da musst du schreiben

Delphi-Quellcode:
+ #13#10 +
Ciao Frederic

mr2 12. Nov 2003 18:59

Re: Tastatureingabe in MSOutlook von delphi simulieren
 
ich glaube das geht nur einzeilig,
dann wirst Du wohl oder übel Hier im Forum suchenMAPI verwenden müssen :(

fkerber 12. Nov 2003 19:47

Re: Tastatureingabe in MSOutlook von delphi simulieren
 
Hi!

Jepp tut mir leid, aber anscheinend hat mr2 recht! Habe es gerade schnell mal mit dem Code von mr2 probiert mit #13#10, aber es ging nicht!

Sorry!

Ciao fkerber

bastianhansen 13. Nov 2003 14:06

Re: Tastatureingabe in MSOutlook von delphi simulieren
 
Delphi-Quellcode:
#13#10
funktioniert bei mir gar nicht...
Ich habe aber die Entdeckung gemacht, dass wenn man mit dem COPY-PASTE-Befehl Text in die Mail einfügt, dieser mit allen Formationen dort eingefügt wird. Kann ich mir DAS nicht zu nütze machen, irgendwie?
Ciao Bastian

mr2 13. Nov 2003 18:37

Re: Tastatureingabe in MSOutlook von delphi simulieren
 
Hallo,

Du kannst den Inhalt des Memos in die Zwischenablage kopieren:
Delphi-Quellcode:
  Memo.CopyToClipboard;
Dann muss der User den Text nur noch über die Maus oder <STRG>+<V> in die Mail einfügen.
Das ist zwar nicht schön, aber wesentlich einfacher als MAPI-Programmierung :)


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:43 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