Delphi-PRAXiS
Seite 3 von 3     123   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Mausklick ausführen, ohne Mauszeigerbewegung. (https://www.delphipraxis.net/146006-mausklick-ausfuehren-ohne-mauszeigerbewegung.html)

Aphton 23. Feb 2010 15:30

Re: Mausklick ausführen, ohne Mauszeigerbewegung.
 
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var P:TPoint;
    X, Y:integer;
begin
  X:=100;
  Y:=100;
  if GetCursorPos(P) then begin
    SetCursorPos(X, Y);
    Mouse_Event(MOUSEEVENTF_LEFTDOWN, X, Y, 0, 0);
    Mouse_Event(MOUSEEVENTF_LEFTUP, X, Y, 0, 0);
    SetCursorPos(P.X, P.Y);
  end;
end;
Dies ist nur eine leicht abgeänderte Form der hier zuvor geposteten Routine.
Bei mir funktionierts!

MfG

lowF 23. Feb 2010 15:53

Re: Mausklick ausführen, ohne Mauszeigerbewegung.
 
Hi, wie wäre es hiermit (ungetestet!!)
Delphi-Quellcode:
var h : hwnd;
    p : TPoint;
    ClientPoint : TPoint;
    lparam : integer;
begin
  h := WindowFromPoint(p);
  ClientPoint.x := p.x;
  ClientPoint.y := p.y;
  ScreenToClient(h,ClientPoint);
  lparam := ClientPoint.X + ClientPoint.Y shl 16;
  Sendmessage(h,WM_LBUTTOMDOWN,0,lparam); //Oder Sendmessage(h,WM_LBUTTOMDOWN,MK_LBUTTON,lparam);
  Sendmessage(h,WM_LBUTTUP,0,lparam);
end;
GGf. statt "sendmessage" "postmessage" verwenden.

g
lowF

implementation 23. Feb 2010 16:05

Re: Mausklick ausführen, ohne Mauszeigerbewegung.
 
@Lostriga:
Es ist schon eine unsaubere Methode, dass ganze über die Maus zumachen. Was auch immer du damit für ein Problem lösen willst - es gibt ganz sicher eine bessere Möglichkeit!


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:06 Uhr.
Seite 3 von 3     123   

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz