Hi all,
da das scheinbar schwierig ist mit dem Kontextmenü (habs die halbe Nacht erfolglos versucht), wollte ich es so machen, dass einfach alles markiert wird. Aber auch das klappt nicht.
Um dem Fehler auf den Grund zu gehen, habe ich ein einfaches Prog geschrieben, welches in ein geöffnetes Notepad die Buchstaben "ABC" reinschreibt und dann alles markiert.
Delphi-Quellcode:
procedure TForm1.Button6Click(Sender: TObject);
var
wnd, wnd2 : HWND;
i : Integer;
s : string;
begin
wnd := FindWindow('notepad',nil);
if wnd <> 0 then begin
wnd2 := FindWindowEx(wnd,0,'Edit',nil);
s := 'ABC';
For i := 1 to Length(s) do begin
SendMessage(wnd2, WM_CHAR, Word(s[i]), 0) end;
BringWindowToTop(wnd);
SendMessage(wnd2, WM_KEYDOWN, VK_CONTROL , 0);
SendMessage(wnd2, WM_KEYDOWN, Ord('A'), 0);
SendMessage(wnd2, WM_KEYUP, Ord('A'), 0);
SendMessage(wnd2, WM_KEYUP, VK_CONTROL, 0);
end;
end;
Das Reinschreiben der Buchstaben klappt, aber markiert wird nichts. Was mach ich falsch? Wie sendet man ein "Strg+A" an eine andere Anwendung?
Gruß,