Funktionen/STRG+C auslesen

  • Hallo Gemeinde =)

    ich bin sehr neu auf dem AUTOIT gebiet und habe meine ersten kleinen "Anfänger" Scripte gebastelt, welche hauptsächlich nur diverse Klicks ausführen.

    Nun möchte ich das gerne erstmal vereinfachen bzw. auch gerne erweitern =)

    Ich habe natürlich auch schon google und das Forum durchsucht und aber wahrscheinlich nicht lange genug ._.

    Eventuell könnt Ihr mir da helfen oder die passenden Beiträge geben (vllt habe ich auch falsch gesucht)

    1.

    Func Funktion1()

    MouseClick("left", 1372, $koord1, 1)

    sleep(Random(500,1000))

    MouseClick("left", 522, 487, 1)

    sleep(Random(500,1000))

    For $a = 1 To $H

    a()

    Next

    MouseClick("left", 522, 487, 1)

    sleep(Random(500,1000))

    Send("{LEFT}")

    sleep(Random(300,600))

    For $a = 1 To $R

    b()

    Next

    Diese Funktion habe ich 20 mal per copy paste zu stehen.... das einzige was sich ändert, ist die rot markierte Zahl (hier 1 bei Funktion und $koord).

    Kann man das zusammenfassen? Oder das man vorher eine Variable bestimmt, welche dann anstelle der roten Zahl stehen soll? Geht das?

    2.

    Gibt es eine Möglichkeit aus dem STRG + C kopierten Wert, neue Variablen "rauszuziehen"?

    Zb. kopiere ich eine Uhrzeit "12:23:17" und lege die Stunde, Minute und Sekunde auf Variablen zb. $h,$m,$s ?

    Oder ich kopiere eine Adresse/Satz wie "Heute um 17 Uhr wird es 20 Grad warm" , und kann da die Zahlen auslesen und auf Variablen legen.

    Ich hoffe ich konnte es etwas verständlich formulieren und umso mehr hoffe ich Ihr könnt mir helfen ^^

    Ich wünsche euch einen schönen Dienstag und freu mich auf eure Antworten =) :klatschen:

  • Diese Funktion habe ich 20 mal per copy paste zu stehen.... das einzige was sich ändert, ist die rot markierte Zahl

    Dann verwende die Funktion mit dem sich ändernden Wert als Parameter:

    Gibt es eine Möglichkeit aus dem STRG + C kopierten Wert, neue Variablen "rauszuziehen"?

    Schau dir mal ClipGet an.

    Und mit den String- Funktionen kannst du dann den Inhalt rausziehen.

  • Hallo und willkommen!

    Ich bin zwar auch noch recht neu hier, aber ich versuch es mal ;)

    Zu 1.:

    Warum machst du nicht einen array mit den Koordinaten, die du dann als Paramter an deine Funktion übergibst?

    Also entweder vorher:

    $aKoords = [ [ 12, 120 ], [ 540, 230] ]

    Funktion ( $aKoords )

    Func Funktion( $aAdress )

    For $i = 0 To UBound( $aAdress ) Step 1

    MouseClick("left", 1372, $aAdress[$i], 1)

    ... weiterer Code

    Next

    EndFunc

    Oder halt mit der For-Schleife außerhalb der Funktion:

    $aKoords = [ [ 12, 120 ], [ 540, 230] ]

    For $i = 0 To UBound( $aKoords ) Step 1

    Funktion( $aKoords[$i] )

    Next

    Func Funktion ( $iAdresse ) ; ist die Adresse eine eizelne Zahl, oder 2 Zahlen? Dann musst du das anpassen

    ... ; = Funktionsinhalte

    EndFunc

    Zu 2.:

    Guck dir mal die Funktion "_ClipBoard_GetData" an, die gibt dir einen String zurück, wenn nur Text in der Zwischenablage ist, den du dann mit den Stringfunktionen bearbeitetn kannst.

    VG

    Einmal editiert, zuletzt von JBO (23. November 2021 um 15:54)

  • Guten Morgen =)

    Klappt wunderbar danke BugFix .

    JBO, deins teste ich später auch noch =)

    Jetzt habe ich natürlich noch eine weitere kleine Frage, ob man das optimieren kann ^^

    Hier starte ich die Funktionen in der gewünschten Reihenfolge. Die X Koordinate ist der Start ($xvar) und bei der nächsten Funktion erweitert sie sich um 36 Pixel.

    Gibt es eine Variante, mir das zu erleichtern? Hintergrund ist zb. das ich nicht immer alle Funktionen benötige und ungern bei jedem Durchlauf die Reihenfolge händisch ändern möchte.

    Oder auch die Möglichkeit von den benötigten Funktionen zufällig auszuführen.

    Also zb.

    ich lege per Variabe fest, click 1,5,9,12 wird benötigt.

    in der Funktion müsste ich dann

    schreiben... und wenn ich eine andere Kombi möchte dementsprechend anpassen.

    Kann man das vereinfachen? Das ich irgendwie vorher definiere, welche ausgeführt werden soll?

    Das in eine Zufallsschleife zu packen, dürfte dann ja auch möglich sein.


    Thema ClipGet:

    Damit beschäftige ich mich noch und probiere ich aus.

    Will da nur per doppelklick eine Zeit markieren und aus dem Zwischenspeicher auslesen und auf Variablen legen um diese dann mit einer weiteren vergleichen.

    z.B.

    Zwischenspeicher (12:33:11)

    $varh = 12

    $varm = 33

    $vars = 11

    und diese vergleiche ich dann mit einer weiteren Zeit =)

    Vielen Dank für eure Hilfen.