Einzelnen Beitrag anzeigen

teebee

Registriert seit: 17. Jan 2003
Ort: Köln
460 Beiträge
 
Delphi 6 Professional
 
#12

Re: Mausklick global simulieren

  Alt 13. Aug 2004, 20:12
Das Problem ist, dass die Funktion keine normalen Bildschirmkoordinaten erwartet, sondern den Bildschirm in x- und y-Richtung in 65535 Einheiten unterteilt:
Zitat von MSDN:
If MOUSEEVENTF_ABSOLUTE value is specified, dx and dy contain normalized absolute coordinates between 0 and 65,535. The event procedure maps these coordinates onto the display surface. Coordinate (0,0) maps onto the upper-left corner of the display surface, (65535,65535) maps onto the lower-right corner.
Folgendes funktioniert:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
 Timer1.Enabled := True;
end;

procedure TForm1.Timer1Timer(Sender: TObject);
Var x, y: Integer;
begin
 Timer1.Enabled := False;
 // gewünschte Position in Bildschirmkoordinaten
 x := 50;
 y := 760;
 // noch umrechnen
 x := 65535 Div Screen.Width*x;
 y := 65535 Div Screen.Height*y;
 // Maus bewegen und klicken, nur klicken geht nicht...
 mouse_event(MOUSEEVENTF_MOVE Or MOUSEEVENTF_LEFTDOWN Or MOUSEEVENTF_ABSOLUTE,x,y,0,0);
 mouse_event(MOUSEEVENTF_MOVE Or MOUSEEVENTF_LEFTUP Or MOUSEEVENTF_ABSOLUTE,x,y,0,0);
end;
Gruß, teebee
  Mit Zitat antworten Zitat