![]() |
Maus atomatisch klicken lassen
hallo Zusammen,
ich würde gerne einen teil in mein programm schreiben der die maus automatisch auf bestimmmten positionen klicken lässt .... dazu wollte ich mal fragen ob es möglich ist und wie ich es realisieren kann ... ich hab zwar schon die suche bennutzt aber nichts entsprechendes gefunden .... im prinzip will ich verschiedene koordinaten klicken lassen in bestimmten zeitabständen ihr sollt mir um gottes willen keinen code schreiben ^^ ich will ja was dabei lernen nur ein tipp wie oder mit welcher methode oder procedure ich es realisieren kann ^^ schonmal vielen Dank im vorraus lg 5etH |
Re: Maus atomatisch klicken lassen
Hilft TMouse dabei?
|
Re: Maus atomatisch klicken lassen
|
Re: Maus atomatisch klicken lassen
Moin, Moin.
Einen Mausklick (hier für die linke Taste) zu simulieren ist kein Problem:
Delphi-Quellcode:
alternativ kann natürlich auch direkt eine definierte Methode ...OnMouseDown() o.ä. aufgerufen werden. Kommt darauf an, was du speziell damit bewirken willst.
..
mouse_event(MouseEventF_leftDown,x,y,0,0); mouse_event(MouseEventF_leftUp,x,y,0,0); .. |
Re: Maus atomatisch klicken lassen
Hi,
1. den Zeiger an die gewünschte Position schieben SetCusrorPos 2. Maus klicken 3. Maus loslassen MouseEvent Zum beispiel so zu finden: ![]() Erstes Ergebnis: siehe oben (dreimal roter Kasten, dann muss ich den Link nicht nochmal hinschreiben) Mfg FAlter |
Re: Maus atomatisch klicken lassen
... oder gleich wie von mir vorgeschlagen :stupid:
|
Re: Maus atomatisch klicken lassen
also was ich gerne damit machen würde ist das ich eine gewisse anzahl an koordinaten recorde und die dann clicken lasse und dazwischen ein sleep setze also ich drücke den butte und er klickt die selben immer wieder
|
Re: Maus atomatisch klicken lassen
Was sollen die Klicks auf die verschiedenen Koordinaten denn bewirken?
|
Re: Maus atomatisch klicken lassen
also bei dem programm kommen immer mal wieder meldungen auf und die werden dann weggeklickt und dann wird mit dem normalen ablauf weiter gemacht
aber die positionen sind immer gleich |
Re: Maus atomatisch klicken lassen
Meldungen eines fremden Programms, die du "ferngesteuert" schließen willst?
|
Re: Maus atomatisch klicken lassen
ja so in etwa
|
Re: Maus atomatisch klicken lassen
so in etwa :?: "Fremd oder nicht fremd, das ist hier die Frage"
|
Re: Maus atomatisch klicken lassen
fremd in dem sinne das es nicht zu meinem programm gehört aber es ist auf meinem rechner ... im prinzip soll ich eine datenbank mit 20.000 einträgen übertragen und joa das dauert so etwas daher will ich ein programm schreiben was es für mich macht ... und dann notiert wenn es ein fehler gab also es sich nicht kopieren lies und die nr in eine memo packt
|
Re: Maus atomatisch klicken lassen
okay also ich habe per suche gefunden wie ich koordinaten ermittle und wie ich klicken kann ^^ *freu* aber jetzt tut sich ein anderes problem auf: sagen wir ich klicke im fremdprogeramm auf das feld in das ich hineinschreiben möchte .... dann weis ich aber nicht wie ich das übergeben kann also das er das hineinschreiben simoliert ? hat da wer ne idee oder lässt sich das nicht realisieren ?
|
Re: Maus atomatisch klicken lassen
Zu mouse_event gibt es ein Pendant keybd_event. Das wäre ein guter Suchbegriff ;)
|
Re: Maus atomatisch klicken lassen
HI,
du kannst auch mittels FindWindow/FindWindowEx das Control suchen und diesem dann eine Nachricht schicken, dass ein gewisser Text für es da ist. Dies würde ich aber bei z.B. Datenbanken nicht bevorzugen, da die Anzahl der Controls expotentionell zu der Anzahl Ddatensätze steigt. keybd_event benötigt zum Funktionieren eine Taste und den Parameter, ob drücken oder loslassen. In der CL sollte es da ne Funktion dafür geben, die auch Groß/Klein berücksichtigt. Bernhard |
Re: Maus atomatisch klicken lassen
ich denke das mir PostMessage mehr hilf da ich nur einen String aus einer Variablen übergeben muss bzw sie an die stelle schreibe an die ich vorher geklickt habe ... nur leider versth ich das überhaupt nicht was bei PostMessage die parameter sein sollen .... bin wohl noch zu neu im delphi universum .... auch das lesen der anderen threads und der hilfe an sich hat mich nicht weiter gebracht .... hoffe das ihr vill bereit seid mir zu helfen
ich will einfach nur den string von sagen wir edit1.text schreiben an die stelle wo ich zuvor in das feld geklickt habe .... hoffe mal sehr auf eure hilfe lg 5etH |
Re: Maus atomatisch klicken lassen
HI,
für PostMessage brauchst du 3 (nicht 4) Parameter. 1. Das Handle deines Ziels, 2. die Konstante WM_SETTEXT, 3. eine 0 und 4. einen Pointer. Ich hoffe mal, dass du weißt, wie du an das Handle kommst. Für Parameter 4 brauchst du einen Zeiger auf einen mit #0 abgeschlossenen String, was der Datentyp String darstellt. Dieser wird einfach nach PChar gecastet. Schwupps hast du deinen Pointer, den du dann noch nach Integer casten musst, da die Funktion keinen Pointer sondern Zahlen will. So jetzt ist da wohl alles da um die Funktion aufzurufen.
Delphi-Quellcode:
Fertig. Die genaue Beschreibung gibts bei MSDN unter
procedure SetWndText(wnd: HWND{ Das Handle }; Text: String{ Der Text });
var tmp: PChar; begin tmp := PChar(text); // tmp := Text; // wems ao gefällt (nicht getestet) // SendMessage(wnd, WM_SETTEXT, 0, Integer(tmp)); PostMessage(wnd, WM_SETTEXT, 0, Integer(temp)); end; ![]() Bernhard |
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:44 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