![]() |
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 :? |
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:
Such mal in der MSDN-Library nach "Outlook.Application".
Msg.To := 'user@host.com';
Msg.Subject := 'Betreff'; Msg.TextBody := 'blabla'; Msg.Send; mr2 |
Re: Tastatureingabe in MSOutlook von delphi simulieren
Hi,
ich habe es mit
Delphi-Quellcode:
in Delphi ausprobiert, aber er erwartet ein statement an stelle von 'user@host.com' und einen Identifier an stelle von To.
Msg.To := 'user@host.com';
Msg.Subject := 'Betreff'; Msg.TextBody := 'blabla'; Msg.Send; 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] |
Re: Tastatureingabe in MSOutlook von delphi simulieren
vielleicht hilft Dir das weiter:
Delphi-Quellcode:
mr2
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; |
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? |
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 |
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 |
Re: Tastatureingabe in MSOutlook von delphi simulieren
Hallo,
Delphi-Quellcode:
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.
uses
ComObj; Online-Buch kenne ich keins aber gedruckt ist ![]() CU mr2 |
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:
|
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. |
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 |
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:
Dadurch wird der Standard-Mailclient geöffnet und eine Mail mit obigen Angaben erzeugt.
uses
Shellapi; var Command: string; begin Command := 'mailto:hans@aol.com?subject=Betreff&body=BlaBla'; ShellExecute(0, nil, PChar(Command), nil, nil, SW_SHOWNORMAL); 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). |
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. :( |
Re: Tastatureingabe in MSOutlook von delphi simulieren
HI!
Da musst du schreiben
Delphi-Quellcode:
Ciao Frederic
+ #13#10 +
|
Re: Tastatureingabe in MSOutlook von delphi simulieren
|
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 |
Re: Tastatureingabe in MSOutlook von delphi simulieren
Delphi-Quellcode:
funktioniert bei mir gar nicht...
#13#10
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 |
Re: Tastatureingabe in MSOutlook von delphi simulieren
Hallo,
Du kannst den Inhalt des Memos in die Zwischenablage kopieren:
Delphi-Quellcode:
Dann muss der User den Text nur noch über die Maus oder <STRG>+<V> in die Mail einfügen.
Memo.CopyToClipboard;
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