"ClickBot"

  • Moin Leute,
    Würde mir gerne ein AutoIt Programm schreiben doch bin recht überfragt weil ich das seit Jahren nicht benutzt hab.
    Das Programm ist total Simpel. Ich hab eine GUI mit Start und Stop - Bei Start soll er in google Chrome auf festgelegte Koordinaten drücken und bei Stop halt stoppen. Cool wäre auch noch wenn ich ein Counter hätte der mir anzeigt wie oft geklickt wurde. Die Klicks sollen ausgeführt werden ohne dass ich Chrome offen hab :)


    Mein GUI sieht folgendermaßen aus:


  • Was du noch brauchst:
    Eine Variable, um die Anzahl der Klicks zu speichern.
    Ein Label, um die Anzahl der Klicks anzuzeigen.
    Eine Variable, welche speichert, ob die Prozedur gerade durchgeführt wird.
    Eine While-Schleife in der die ControlClick Befehle ausgeführt werden, solange die Prozedur läuft.
    ControlClick Befehle, um die Klicks auszuführen, ohne das Chrome im Vordergrund sein muss.

  • Und es sollte in der While Schleife das Label der Klicks aktualisiert werden^^ (eigentlich osllte man dran denken aber ich sags nur mal so dazu)


    Achja - möchtest du das es so und so oft geklickt wird oder einfach dauernd durch bis du auf Stop klickst?

  • Moin,
    Leider funktioniert das bei mir nicht richtig. Als Beispiel mal "google.de" und der "Auf gut Glück!" Button.



    Was mache ich falsch?

  • ControlClick:

    Zitat

    Some controls will resist clicking unless they are the active window. Use the WinActivate() function to force the control's window to the top before using ControlClick().


    Probier es mal hiermit:

  • Bei mir gehts. Allerdings schiebt sich Chrome dann in den Vordergrund wenn Chrome minimiert.


    Für google.de bei 1920x1080 (Vollbild) um auf "Auf gut Glück!" zu klicken
    _Click(ControlGetHandle("Google - Google Chrome", "", "[CLASS:Chrome_RenderWidgetHostHWND; INSTANCE:2]"), 1000, 373)


    PS: Irgendwie ändert sich die Instanz des Controls bei mir. Ist meistens aber 1, also ggf. anpassen.

  • Was willst du überhaupt anklicken? Buttons kannst du z.B. auch über IE Controls ansteuern und das passiert dann auch im Hintergrund. Wenn die Funktion von mir nicht geht, dann gibt es meine ich keinen anderen Weg um über Mausklicks ans Ziel zu kommen.


    Kannst dir mal _IECreateEmbedded angucken und die _IE... Funktionen durchforsten. Vielleicht komsmt du ja damit ans Ziel.