![]() |
Re: Mausklick global simulieren
Ich habe auch mal eine Tray-Applikation geschrieben die mit keybd_event und mouse_event Tasten generiert.
Funktioniert prima. ![]() |
Re: Mausklick global simulieren
Das Problem ist, dass die Funktion keine normalen Bildschirmkoordinaten erwartet, sondern den Bildschirm in x- und y-Richtung in 65535 Einheiten unterteilt:
Zitat:
Delphi-Quellcode:
Gruß, teebee
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; |
Re: Mausklick global simulieren
nee, ich hab auch schon damit gearbeitet und kann mich an sowas nicht erinnern. was absolute hieß, war auch absolut!
edit: scheinst recht zu haben. aber irgendwie kann ich mich an was anderes erinnern... ?? |
Re: Mausklick global simulieren
Vom absolute Modus sollte man die Finger lassen. Windows mag solche Geraete nicht sonderlich.
Dein Fehler ist mit der Funktion auch die Position des Cursors setzen zu wollen. Dafuer ist die Win32-Funktion SetCursorPos weit besser geeignet. Es ist ein haeufiger Fehler Maus und Cursor gleichzusetzen. Die Maus ist ein Eingabegeraet waehrend der Cursor ein Konstrukt des Betriebssystems ist. Die Daten der Maus dienen zur Steuerung des Cursors. mouse_event ist das API-Aequivalent einer Maus. Die Cursorposition aber ist fuer die Maus irrelevant. |
Re: Mausklick global simulieren
Zitat:
Zitat:
Gruß, teebee |
Re: Mausklick global simulieren
Zitat:
Setze mit SetCursorPos die Position des Cursors und generiere mit mouse_event-Aufrufen einen Klick. |
Re: Mausklick global simulieren
Zitat:
Gruß, teebee |
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:53 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz