Einzelnen Beitrag anzeigen

nezumi

Registriert seit: 20. Apr 2006
Ort: Berlin
56 Beiträge
 
#8

Re: Kontextmenü einer anderen Anwendung aufrufen

  Alt 29. Okt 2006, 08:26
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ß,
nezumi
- Eddy the Eagle unter den Programmierern -
  Mit Zitat antworten Zitat