Guten Tag,
leider schon wieder ein Problem:
Ich versuche einen string zu einer anderen Anwendung zu schicken, eine Aktion auszuführen und dann den Text in der Anwendung in mein Programm zu kopieren. Leider klappts nicht.
Um dem Fehler auf den Grund zu gehen, hab ich das Ganze mit einem stark vereinfachten Prog versucht:
- Es soll der erste Eintrag meiner Listbox in ein geöffnetes Notepad kopiert werden.
- Dann soll der gesamte Notepad Inhalt kopiert...
- ...und in ein Memo meines Programms geschrieben werden:
Delphi-Quellcode:
uses
...shellapi, sndkey32, Clipbrd;
procedure TForm1.Button1Click(Sender: TObject);
var
h_anwendung, h_fenster: HWND;
i : Integer;
s, s2 : string;
begin
i2 := 0;
s2 := '';
h_anwendung := FindWindow('notepad',nil);
if h_anwendung <> 0 then begin
h_fenster := FindWindowEx(h_anwendung,0,'Edit',nil);
s := Listbox1.Items[2];
For i := 1 to Length(s) do begin
SendMessage(h_fenster, WM_CHAR, Word(s[i]), 0) end;
BringWindowToTop(h_anwendung);
clipboard.open;
SendKeys('^a',true);
SendKeys('^c',true);
sleep(50);
s2 := Clipboard.Astext;
clipboard.close;
Memo1.Lines.Add(s2);
end;
end;
end.
Das Einfügen in Notepad klappt, auch das Markieren des gesamten Inhalts. In meinem Memo-fenster kommt der aber nicht an, sondern irgendwas, was vorher schon in der Zwischenablage war (oder gar nichts). Was mache ich falsch?