![]() |
Text in den "Betreff" von Outlook einfügen
Liste der Anhänge anzeigen (Anzahl: 1)
hallo dp-community,
wer hat für folgende aufgabe einen lösungsvorschlag? es geht darum, der betreffzeile einen vordefinierten text einzufügen. z.B. Betreff: Passwort Rest Reguest in der zwischenablage habe ich "checked by ara! " und wenn ich in meinem program einen button klicke soll dieser text am anfang eingefügt werden, egal ob das fenster den focus besitzt oder nicht, das ergenis soll dann so auschauen und das programm soll auf jedem rechner mit outlook laufen. Betreff: checked by ara! Passwort Rest Reguest im attachment habe ich ein screenshot angehängt um zu verdeutliche um welches fenster es geht, ich kriege nämlich das childwindow :wall: vom outlook nicht angesprochen. herzliche dank schon mal im voraus für jedweglichen lösungsweg :thumb: (xp + delphi2006) |
Re: Text in den "Betreff" von Outlook einfügen
für mich sieht das Feld Readonly aus. Das heißt du könntest ja auch nicht normal mit der Tastatur rein schreiben?!
|
Re: Text in den "Betreff" von Outlook einfügen
Hallo, herzlich Willkommen!
Ich habe noch nicht ganz verstanden, was du möchtest. Sei mir also nicht böse, wenn ich eine Antwort schreibe, die nicht zur Lösung deines Problems beiträgt. ;) Zitat:
Delphi-Quellcode:
Oder muss es explizit Outlook sein? Nicht jeder nutzt Outlook und somit wärst du mit dem Standard-Client unter Umständen besser bedient.
uses ShellAPI;
// ... const email = 'mail@example.com'; subject = 'Passwort Rest Reguest'; begin ShellExecute(Application.Handle, 'open', PChar('mailto:' + email + '?subject=' + subject), nil, nil, SW_SHOWNORMAL); end; Grüße |
Re: Text in den "Betreff" von Outlook einfügen
Zitat:
|
Re: Text in den "Betreff" von Outlook einfügen
hast du mal mit einem der bekannten Tools (bsp:
![]() |
Re: Text in den "Betreff" von Outlook einfügen
Oder muss es explizit Outlook sein? Nicht jeder nutzt Outlook und somit wärst du mit dem Standard-Client unter Umständen besser bedient.
es muß outlook sein da kein anderes mailprogamm in frage kommt, und mails sind jeden tag zig neue da - jedesmal mit nem anderen betreff |
Re: Text in den "Betreff" von Outlook einfügen
Hallo,
Du kannst z.B mit meinem WinSpy die Fensterstruktur analysieren und den FindWindow Code automatisch erzeugen lassen. Das Subject besteht aus einem RichEdit20W Feld.
Code:
rctrl_renwnd32 "" | 5507338
AfxWndA | 3672204 #32770 | 4458668 RichEdit20W "SUBJECT" | 9439558 |
Re: Text in den "Betreff" von Outlook einfügen
Zitat:
habe allerdings mit winspy keine erfahrung, habe gestern zum 1. mal davon gelesen, der kann code generieren?? staun!! :spin: |
Re: Text in den "Betreff" von Outlook einfügen
Du kannst "Fokus folgen" auswählen und den Fokus auf das Subject setzen.
Dann kannst du via Menü "Tools" | Code Generator den Code erzeugen lassen. |
Re: Text in den "Betreff" von Outlook einfügen
das werde ich morgen mal probieren,ich bin gespannt wie ein flitzebogen,
vielen dank für den hinweis |
Re: Text in den "Betreff" von Outlook einfügen
Vielen Dank für die Hilfe und Anregungen die ich hier im Board als auch von einigen Usern bekommen habe.
Durch eure Hilfe ist es mir gelungen folgeneden Code um zu setzen.
Delphi-Quellcode:
//------------------------------------------------Tastendruck an fremdes Fenster
procedure PressKey(Key: Word);overload; begin keybd_event(Key, 0, 0, 0); keybd_event(Key, 0, KEYEVENTF_KEYUP, 0); end; procedure PressKey(Key: Char);overload; begin PressKey(vkKeyScan(Key)); end; //------------------------------------------------Tastendruck an fremdes Fenster //-------------------------------------Username des eingeloggten Users ermitteln function GetUsername: String; var Buffer: array[0..255] of Char; Size: DWord; begin Size := SizeOf(Buffer); if not Windows.GetUserName(Buffer, Size) then RaiseLastOSError; SetString(Result, Buffer, Size - 1); end; //-------------------------------------Username des eingeloggten Users ermitteln //----------------------------------------------------------------Fenster finden function FindWindowEx2(hParent: HWND; ChildClassName: string; ChildNr: Word): HWND; var i: Word; hChild: HWND; begin hChild := 0; Result := 0; Dec(ChildNr); for i := 0 to ChildNr do begin hChild := FindWindowEx(hParent, hChild, PChar(ChildClassName), nil); if hChild = 0 then Break; Result := hChild; end; end; function FindWindowByTitle(WindowTitle: string): Hwnd; begin NextHandle := GetWindow(Application.Handle, GW_HWNDFIRST); while NextHandle > 0 do begin // retrieve its text GetWindowText(NextHandle, NextTitle, 255); if Pos(WindowTitle, StrPas(NextTitle)) <> 0 then begin Result := NextHandle; Form1.Edit2.Text:= NextTitle; Exit; end else // Get the next window NextHandle := GetWindow(NextHandle, GW_HWNDNEXT); end; Result := 0; end; //----------------------------------------------------------------Fenster finden //---------------------------Alt+f+s=Datei speichern an aktuelles Fenster senden procedure SaveMe; begin FindWindowByTitle('- Message'); wndMain := FindWindow('rctrl_renwnd32',NextTitle ); wndChild := FindWindowEx(wndMain, 0, 'AfxWndW', nil); SetForeGroundWindow(wndChild); PressKey(vk_menu); PressKey('f'); PressKey('s'); end; //---------------------------Alt+f+s=Datei speichern an aktuelles Fenster senden //------------------------------------------Fenster finden + Daten reinschreiben procedure TForm1.Button2Click(Sender: TObject); var s: string; i,wert: integer; begin FindWindowByTitle('- Message'); Actuell_Time:= FormatDateTime('hh:nn', now); wndMain := FindWindow('rctrl_renwnd32',NextTitle ); if wndMain <> 0 then begin wndChild := FindWindowEx(wndMain, 0, 'AfxWndW', nil); wndChild := FindWindowEx(wndChild, 0, '#32770', nil); wndChild := FindWindowEx2(wndChild,'RichEdit20WPT', 5); end else begin ShowMessage('No Mail is opened!'); exit; end; if wndChild <> 0 then begin Clipboard.Clear; SendMessage(wndChild,WM_COPY,0,0); Edit1.PasteFromClipboard; S:= My_User_Name+ ' ' + Actuell_Time + ' | '; for i := 1 to length(s) do begin wert := ord(S[i]); sendmessage(wndChild, WM_Char,(wert),1); end; SaveMe; end else begin ShowMessage('No Mail is opened!'); end; end; //------------------------------------------Fenster finden + Daten reinschreiben procedure TForm1.FormCreate(Sender: TObject); begin My_User_Name:= GetUsername; end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:12 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