Nach 10 Mausklick eine Taste drücken

  • Hallo,

    ich möchte ein Script das zum Beispiel nach dem man 10 mal die linke Taste gedrückt hat automatisch die Taste M drückt oder so.
    wie könnte man das realisieren?

  • ich meine maustaste

    so schaut das immo aus

    [autoit]

    while 1
    $n = 0
    Do
    Do
    Sleep(100)
    Until _IsPressed("01") ; siehe Hilfe
    $n += 1
    Until $n = 10
    if $n=10 Then
    send("{SPACE}")
    EndIf

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

    WEnd

    [/autoit]

    Einmal editiert, zuletzt von wittenberg (12. September 2007 um 14:58)

    • Offizieller Beitrag

    Na siehste, Lesen bildet ;)

    Aber die Abfrage
    If $n = 10 ist sinnlos, da die Do-Until-Schleife ja erst verlassen wird, wenn $n = 10 ist.
    Und warum läuft das alles in einer While-Schleife? - Damit ist es endlos.

    Edit: Habe den Eindruck, dass das ein Bot werden soll. Überzeug mich vom Gegenteil ansonsten ist hiermit Ende der Hilfestellung.

  • hab jetzt doch noch ein problem, leider geht das nicht wenn man nicht selber die linke taste drückt oder hab ich da einen fehler gemacht?

    [autoit]

    While 1


    $coord = PixelSearch(444, 263, 990, 441, 0xC76567)
    If IsArray($coord) = 1 Then
    MouseClick('left', $coord[0], $coord[1], 1, 0)
    EndIf
    $n = 0
    Do
    Do

    Until _IsPressed("01") ; siehe Hilfe
    $n += 1
    Until $n = 10
    send("{SPACE}")

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

    WEnd

    [/autoit][autoit][/autoit][autoit][/autoit]
  • Kann durchaus sein, dass der simulierte Mausklick nicht erkannt wird. Das hier erfüllt Deine ursprüngliche Fragestellung:

    Spoiler anzeigen
    [autoit]

    #include <Misc.au3>

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

    Local $ai_coord = -1
    For $i = 1 To 10
    $ai_coord = PixelSearch(444, 263, 990, 441, 0xC76567)
    If IsArray($ai_coord) Then MouseClick("left", $ai_coord[0], $ai_coord[1], 1, 0)
    Do
    Sleep(50)
    Until _IsPressed("01")
    MsgBox(0, "Debug", "Clicked " & $i & " times...", 3)
    Next
    Send("{SPACE}")

    [/autoit]

    @Mods: 3 Threads eröffnet, dreimal Verdacht bzw. klare Absicht eines Bots...

  • ja ich hab mal wieder das alte moorhuhn ausgepackt und da ich noch nicht so lange dabei bin wollte ich aus spaß sowas machen wieso ist das so schlimm?

  • Hi,

    genau so siehts aus. Gegen einen Moorhuhnbot hab ich persönlich jetzt aber auch nichts auszusetzen. Einfach kurz zu Anfang erläutern, wozu das Ganze ist. Dann gibts auch keine Probleme!
    Also, ich erklär Dir mal meinen Code:

    Spoiler anzeigen
    [autoit]

    #include <Misc.au3>

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

    Local $ai_coord = -1
    While 1 ;~ Die Endlosschleife, da Du es ja die ganze Zeit ausführen möchtest.
    For $i = 1 To 10 ;~ Zählt von 1 bis 10, ...
    $ai_coord = PixelSearch(444, 263, 990, 441, 0xC76567) ;~ ... besorgt sich die X- und Y-Koordinaten und ...
    If IsArray($ai_coord) Then MouseClick("left", $ai_coord[0], $ai_coord[1], 1, 0) ;~ ... führt einen Mausklick auf die Koordinaten aus (IsArray ist nur für den Falle eines Fehlers).
    #region - Wartet bis die linke Maustaste gedrückt wurde (Vielleicht weglassen und nur durch Sleep(20) ersetzen...).
    Do
    Sleep(20)
    Until _IsPressed("01")
    #endregion
    Next
    Send("{SPACE}") ;~ Drückt einmal auf die Leertaste.
    WEnd

    [/autoit]
  • alles klar mache ich das nächste mal,
    ich hab aber gemerkt dass das mit dem bot net so klappt möchte nun das er nach 10 mausklicks die leertaste drückt dann hat man so eine art MG aber das klappt irgendiwie nicht er drückt die ganze zeit die leertaste

    so sieht mein code aus

    [autoit]


    while 1

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

    For $i = 1 To 10 ;~ Zählt von 1 bis 10, ...
    MouseClick("left")
    Do
    Sleep(20)
    Until _IsPressed("01")
    Next
    Send("{SPACE}")
    wend

    [/autoit]

    2 Mal editiert, zuletzt von wittenberg (14. September 2007 um 13:40)

  • ui die schleifenverschachtelung schaut ja grauenhaft aus *lach*

    [autoit]


    while 1
    For $i = 1 To 10
    MouseClick("left")
    Do
    Sleep(20)
    Until _IsPressed("01")
    Next
    Send("{SPACE}")
    wend

    [/autoit]

    also rein vom prinzip her müsste das funktionieren... ABER ... das Do ... Until kannst auch weglassen und nur den Sleep befehl schreiben... (glaub ich zumindest)

  • ok hab das jetzt so gemacht aber ich müsste jetzt noch irgendwie was einstellen das ich erst auf einen knopfdruck das laufen lasse

    [autoit]

    while 1
    For $i = 1 To 10
    MouseClick("left")
    Next
    Send("{SPACE}")
    wend

    [/autoit]

    und wenn ich das manuell versuche drückt er schon nach dem ersten mausklick die die leertaste

    [autoit]

    while 1
    For $i = 1 To 10
    _IsPressed("01")
    Next
    Send("{SPACE}")
    wend

    [/autoit]

    2 Mal editiert, zuletzt von wittenberg (14. September 2007 um 14:24)

  • knopfdruck? - ne gui mit button oder wie?

    ansonsten kannst du das auch mit hotkeys machen zB.:

    [autoit]


    HotKeySet("{F5}", "_hotkey")
    While 1
    Sleep(100)
    WEnd
    Func _hotkey()
    while 1
    For $i = 1 To 10
    MouseClick("left")
    Next
    Send("{SPACE}")
    wend
    EndFunc

    [/autoit]

    EDIT: alles natürlich nich getestet, weil ich hier keiin autoit zuigs drauf hab

    Einmal editiert, zuletzt von oliverh (14. September 2007 um 14:31)

  • achja genau

    ne das problem ist ja bei den neuen moorhuhn versionen kann man schon nachladen bevor das magazin leer ist aber wenn man das tut werden einem die punkte abgezogen leider klappt der code nicht mir werden die ganze zeit punkte abgezogen