Einsteigerproblem

  • Hallo liebe community. Ich bin hier ganz neu und hab mich erst seit kruzem mal mit autoit auseinandergesetzt.
    jedoch brauch ich glaub ich sowas wie ne starthilfe.
    folgendes problem: ich möchte eine Dauerschleife bauen, die startet wenn ich taste X drücke und endet bei Taste Y
    Wenn ich nun X gedrückt habe und die schleife läuft, so soll an der aktuellen position meiner maus ein doppelklick ausgeführt werden.
    qausi andauernd im abstand von sag ich mal 5 sekunden. wenn ich y drücke soll das ganze aufhören

    nun zu meinen versuchen:


    _IsPressed($X) then
    While 1
    sleep(50)
    doubleklick
    Sleep(5000)
    WEnd

    naja irgendwie so halt^^
    kann jemand mal so nett sein und mir das mal fertig machen, das ich es einmal richtig sehe? danke

    Einmal editiert, zuletzt von rexderruede (4. Mai 2010 um 20:45)

  • [autoit]

    #include <Misc.au3> ; Binde die Misc.au3 ein( für _IsPressed)
    While 1 ; While Schleife
    If _IsPressed("58") Then ; Wenn die X Taste gedrückt wurde, dann
    While sleep(5050) ; While Schleife die nach jedem Mal 5,05 Sekunden wartet
    $mousepos=MouseGetPos() ;Ermittle die aktuelle Mausposition
    MouseClick("left", $Mousepos[0], $Mousepos[1], 2) ; Klicke 2 mal auf die aktuele Stelle
    WEnd ; Wiederholfe die Schleife
    EndIf ; Ende vom If
    WEnd ;Wiederhole die Schleife

    [/autoit]
  • ah ist das supi, genau sowas hab ich auch gesucht.
    dankesehr.

    aber noch 2 kleine fragen.
    frage 1: muss ich alles was gedrückt werden soll in anführungs striche schreiben? Also
    If _IsPressed("x") Then

    frage2: wenn ich nun was habe was außerhalb der schleife passieren soll, zum beispiel das zuerst 10 doppelklicks hintereinander ausgeführt werden sollen und dann nach 1 minute
    die schleife beginnen soll

    oder bringt man das mit in die schleife rein, setzt aber nen zähler, in meinem fall 1, da es ja nur einmal geschehen soll
    im klartext:

    X drücken (starten des scripts)
    -> 10 doppelklicks werden ausgeführt
    -> sleep(1000)
    ->doppelklick
    ->sleep(5000)
    ->doppelklick
    ->sleep(5000)
    ->doppelklick
    ->sleep(5000)
    ->doppelklick
    ->sleep(5000)
    .
    .
    .
    Y drücken (stoppen des scripts)

    tut mir leid das ich so ein newby bin :(

  • Hallo lieber neuling !

    Dazu gibt es die Hilfe (UDFs.au3) wo drin steht welche Taste welcher Nummer angehört !
    Zudem die Normale Hilfe (AutoIt.au3) wo das was du versuchen willst drin steht !

    EDIT//

    Herzlich wilkommen !


    EDIT//²

    Soll das ein Bot werden ?

    Es gibt sehr viele Leute, die glauben. Aber aus Aberglauben.
    - Blaise Pascal

  • [autoit]

    #include <Misc.au3> ; Binde die Misc.au3 ein( für _IsPressed)
    While 1 ; While Schleife
    If _IsPressed("58") Then ExitLoop; Wenn die X Taste gedrückt wurde, dann gehe aus der Schleife
    WEnd ;Wiederhole die Schleife
    $mousepos=MouseGetPos() ;Ermittle die aktuelle Mausposition
    MouseClick("left", $Mousepos[0], $Mousepos[1], 10) ; Klicke 10 mal auf die aktuele Stelle
    While sleep(5050) ; While Schleife die nach jedem Mal 5,05 Sekunden wartet
    $mousepos=MouseGetPos() ;Ermittle die aktuelle Mausposition
    MouseClick("left", $Mousepos[0], $Mousepos[1], 2) ; Klicke 2 mal auf die aktuele Stelle
    If _IsPressed("59") Then Exit ; Wenn Y gedrückt wurde, dann beende das Script
    WEnd ; Wiederholfe die Schleife

    [/autoit]


    Zu _IsPressed: Du musst in Anführungszeichen die ID der Taste hinschreiben; mehr dazu in der Hilfe.

  • achso verstehe. hinter jedem buchstaben, bzw zeichen verbirgt sich also eine Ziffer, die das programm verarbeiten kann. danke :)

    dankeschön.
    jetzt verstehe ich. der ispressed befehl dient lediglich zum starten und steht nicht mit der schleife in verbindung :)
    danke

  • Vergiss nich die user32.dll ;) (is nich wichtig und ich weiss nich mal für was sie benötigt wird...)


    [autoit]

    Global $dll = "user32.dll"

    [/autoit][autoit][/autoit][autoit]

    While 1
    If _IsPressed("58",$dll) Then Exit
    WEnd
    ;so z.B.

    [/autoit]