Bildschirmkoordinaten durch ControlClick für MouseMove ermitteln

  • Hallo Zusammen,

    kann man die Bildschirmkoordinaten eines durchgeführten ControlClick zwischenspeichern (evtl. via ClipPut) und für einen MouseMove verwenden?

    In einem einfachen Beispiel, um die Mechanik besser zu verstehen, habe ich via AutoIt Window Info die Fensterinformationen von Paint ausgelesen und die des Zeichenfeldes verwendet. Mein Ziel ist es, die mögliche relative Position und Größe des Fensters von Paint bzw. der Zeichenfläche durch einen ControlClick zu ermitteln, einen bestimmten Punkt anzusteuern und von diesem ausgehend weiter mit der Maus zu arbeiten.

    Hat jemand evtl. eine Idee ob und wie das funktionieren könnte? Hier ist mein kleiner Ausgangsskript:

    Viele Grüße 😊

  • Darf ich erst mal hinterfrsagen, was du genau vor hast?

    Ggf. gibt es was besseres als per MouseClick zu arbeiten.

    Ich gehe nicht davon aus, das du per Autoit in paint malen willst ;)

  • Du hast recht ich will nicht per AutoIt malen. 😉 Es dient lediglich zum ausprobieren der Mechanik.

    Ich möchte in einem anderen Programm Datenfiles auf einer Liste verschieben. Dies geht leider nicht per Tastenkombination sondern nur manuel mit der Maus. Da das Programmfenster und die Liste nicht immer an der selben Stelle ist, muss ich, wenn ich meine initiale Idee mit den Mouse-Befehlen verfolge, die Position bestimmen damit er die Datenfiles findet. Aber ich bin offen für effizientere Herangehensweisen.

    Viele Grüße 😊

  • Evtl. kannst du mit dem AutoIt Window Info die control s herausfinden und diese damit direkt ansteuern.
    Dazu können dir andere gute Kollegen hier ggf. mehr sagen, da ich selber das bisher kaum genutzt habe und ohne das Programm zu kennen (?) oder zu haben ist es schwer das zu testen.

    Wenn die Position der Dateien innerhalb des Programms immer identisch sind, könnte man ggf.
    1. Das entsprechende "Listview" ansteuern und entsprechende Einträge markieren
    2. Den Button zum verschieben (ich gehe von einer WinSCP ähnl. Vorgehensweise aus) drücken

  • Du hast recht ich will nicht per AutoIt malen. 😉 Es dient lediglich zum ausprobieren der Mechanik.

    Ich möchte in einem anderen Programm Datenfiles auf einer Liste verschieben. Dies geht leider nicht per Tastenkombination sondern nur manuel mit der Maus. Da das Programmfenster und die Liste nicht immer an der selben Stelle ist, muss ich, wenn ich meine initiale Idee mit den Mouse-Befehlen verfolge, die Position bestimmen damit er die Datenfiles findet. Aber ich bin offen für effizientere Herangehensweisen.

    Viele Grüße 😊

    Hallo,

    ich glaube, du beziehst dich auf "Data files" (Datenfiles). Falls du ein Fenster mit einer Liste automatisiert ansprechen möchtest, könnte die MouseCoordMode-Option in AutoIt nützlich sein. Diese Option bestimmt, wie Koordinaten in den Mausfunktionen interpretiert werden. Es gibt drei Modi:

    0: Relative Koordinaten zum aktiven Fenster.
    1: (Standard) Absolute Bildschirmkoordinaten.
    2: Relative Koordinaten zum Client-Bereich des aktiven Fensters.
    Hier ein Beispiel, wie du es mit einer eigenen GUI verwenden kannst. Dies funktioniert aber auch mit jeder anderen Applikation, vorausgesetzt, sie ist geöffnet und du kannst den Fenstertitel mit dem in AutoIt mitgelieferten Tool identifizieren. Meiner Erfahrung nach funktioniert es dann wie gewünscht, dann fehlt nur noch das reinziehen das du möchtest da muss ich passen, sollte aber irgentwie machbar sein.


    8 Mal editiert, zuletzt von MojoeB (12. Januar 2024 um 18:04) aus folgendem Grund: beispiel 2 nochmal angepasst.