Einzelnen Beitrag anzeigen

TheThrust

Registriert seit: 30. Jan 2008
19 Beiträge
 
#1

Maus bewegen und Klick simulieren in minimiertem Fenster

  Alt 30. Jan 2008, 17:35
Hallo ihr fleißigen Delphianer

Ich lese schon seit mehreren Wochen hier im Forum und habe mir bisher jede Frage durch die Suchfunktion beantworten können.
Jetzt habe ich allerdings ein Problem, auf das ich auch nach längeren Suchen keine Antwort finden konnte, ich hoffe ihr könnt mir helfen:

Ich möchte in einem minimierten Fenster verschiedene Sachen ausführen, wie z.B einen Mausklick an bestimmten Positionen.
Einen Text an das Notepad zu senden hat bei mir bereits auf folgende Weise funktioniert:

Delphi-Quellcode:
var
  wnd, wnde:Hwnd;
  s : string;

...

s := 'beliebige Zeichen';
wnd:=findwindow('Notepad', nil);
  if wnd<>0 then
  begin
    wnde := FindWindowEx(wnd,0,'Edit',nil);
    if wnde<>0 then
    begin
      For i := 1 to Length(s) do
        begin
          SendMessage(wnde, WM_CHAR, Word(s[i]), 0);
          showmessage(s[i]);
        end;
     end;
  end;
Dieser Code funktionierte einwandfrei, jedoch sieht das ganz anders aus, wenn ich zum bespiel den Intenet explorer öffne und per simuliertem Mausklick auf den 'Suchen' Butten bei Google drücken will. Hierfür habe ich folgendes versucht:

Delphi-Quellcode:
var
  wnd : Hwnd;
  Pt : TPoint;

...

Pt.X := 780;
Pt.Y := 260;
wnd:=findwindow('IEFrame', nil);
if wnd<>0 then
  begin
    Pt := ClientToScreen(Pt);
    Pt.x := Round(Pt.x * (65535 / Screen.Width)) ;
    Pt.y := Round(Pt.y * (65535 / Screen.Height)) ;
    sendmessage(wnd,WM_MouseMove,Pt.X,Pt.Y); // Ich weiß nicht, ob diese Zeile nötig ist, ohne sie funktioniert es genausowenig
    sendmessage(wnd,WM_LButtonDown,Pt.X,Pt.Y);
    sendmessage(wnd,WM_LButtonUp,Pt.X,Pt.Y);
  end;
Das funktionier nicht, aber folgendes funktioniert bei maximiertem Fenster:

Mouse_Event(MOUSEEVENTF_ABSOLUTE or MOUSEEVENTF_LEFTDOWN, Pt.x, Pt.y, 0, 0) ;; Meine Frage ist nun:
Kann ich in einem minimierten Fenster Mausklicks simulieren ohne, dass sich der "echte" Mauszeiger bewegt?
Vielen Dank schon mal im Vorraus
  Mit Zitat antworten Zitat