Einzelnen Beitrag anzeigen

Lostriga

Registriert seit: 14. Jun 2008
28 Beiträge
 
#16

Re: Mausklick ausführen, ohne Mauszeigerbewegung.

  Alt 12. Jan 2010, 22:51
Aloa ihr´s,

mal eine kleine Zusammenfassung womit ich nicht auf das gewünschte Ergebnis komme.

Eine Blitzschnelle Bewegung der Maus:
Zielpunkt -> Klick -> Ausgangspunkt, leider ist das nicht der gewünschte Effekt.
Delphi-Quellcode:
procedure TForm1.MakeMouseClick(AP: TPoint);
var
  P:TPoint;
begin
  if GetCursorPos(P)
  then begin
    SetCursorPos(AP.X, AP.Y);
    Mouse_Event(MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0);
    Mouse_Event(MOUSEEVENTF_LEFTUP, 0, 0, 0, 0);
    SetCursorPos(P.X, P.Y);
  end;
end;

procedure TForm1.Button1Click(Sender: TObject);
var
  P:TPoint;
begin
  P.X:=500;
  P.Y:=500;
  MakeMouseClick(P);
end;
Das gleiche wie eben nur halt in einer Procedure zusammen gefasst.
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  P:TPoint;
  X, Y:integer;
begin
  X:=1240;
  Y:=800;
  if GetCursorPos(P)
  then begin
    SetCursorPos(X, Y);
    Mouse_Event(MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0);
    Mouse_Event(MOUSEEVENTF_LEFTUP, 0, 0, 0, 0);
    SetCursorPos(X, Y);
  end;
end;
Dieses zeigt bei mir keinen Effekt, die X und Y Koordinaten haben anscheinend keinen Einfluss.
Delphi-Quellcode:
procedure MakeMouseClick(AP: TPoint);
begin
  Mouse_Event(MOUSEEVENTF_LEFTDOWN or MOUSEEVENTF_ABSOLUTE, AP.x, AP.y, 0, 0);
  Mouse_Event(MOUSEEVENTF_LEFTUP or MOUSEEVENTF_ABSOLUTE, AP.x, AP.y, 0, 0);
end;

procedure TForm1.Button1Click(Sender: TObject);
var
  P:TPoint;
begin
  P.X:=500;
  P.Y:=500;
  MakeMouseClick(P);
end;
Habe auch nach längerem, weiterem Stöbern nicht´s gefunden, es geht anscheinend nicht.


Mit freundlichem Gruß

Lostriga
  Mit Zitat antworten Zitat