Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Text in den "Betreff" von Outlook einfügen (https://www.delphipraxis.net/113790-text-den-betreff-von-outlook-einfuegen.html)

aramintaros 2. Jun 2008 18:00

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 01:32 Uhr.
Seite 2 von 2     12   

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