(gelöst) anfrage starten/stoppen per hotkey

  • AutoIt

    anfrage starten/stoppen per hotkey

    Hallo

    ich habe mir einen kleinen bot geschrieben
    nun wollte ich das man mit F1 den bot starten und mit F2 stoppen kann
    leider weiß ich nicht wie ich das mache
    hier mal mein script

    AutoIt

    1. #include <ButtonConstants.au3>
    2. #include <EditConstants.au3>
    3. #include <GUIConstantsEx.au3>
    4. #include <StaticConstants.au3>
    5. #include <WindowsConstants.au3>
    6. $Form1 = GUICreate("Leertasten Spammer", 138, 58, 192, 124)
    7. $Button1 = GUICtrlCreateButton("Start", 0, 0, 65, 25)
    8. $Button2 = GUICtrlCreateButton("Stop", 72, 0, 65, 25)
    9. $Button3 = GUICtrlCreateButton("Schließen", 32, 32, 65, 25)
    10. GUISetState()
    11. While 1
    12. $msg = GUIGetMsg()
    13. Select
    14. Case $msg = $GUI_EVENT_CLOSE
    15. ExitLoop
    16. Case $msg = $Button1
    17. AdlibRegister('_Space', 1700)
    18. Case $msg = $Button2
    19. AdlibUnregister()
    20. Case $msg = $Button3
    21. Exit
    22. EndSelect
    23. Wend
    24. Func _Space()
    25. Send("{^}")
    26. MouseClick("left")
    27. MouseClick("left")
    28. MouseClick("left")
    29. MouseClick("left")
    30. MouseClick("left")
    31. MouseClick("left")
    32. MouseClick("left")
    33. Send("1")
    34. EndFunc


    kann mir da er helfen

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Terrax2“ ()

    erstell eine globale Variable:
    [autoit]Global $playing = 0[/autoit]

    In der Funktion von F1 stellst du die Variable
    [autoit]$playing = 1[/autoit]
    In der Funktion von F2 stellst du die Variable
    [autoit]$playing = 0[/autoit]

    und in deiner while-schleife packst du deinen code in eine if-bedingung
    [autoit]If $playing Then
    ; Dein Code
    EndIf[/autoit]

    edit:
    ich sehe grad, du arbeitest mit adlib, willst du die adlibs starten und stoppen? wenn ja, pack die adlibs in die f1 und f2 funktionen
    Wenn ihr zufrieden mit dem Support hier seid, würde ich mich natürlich über eine positive Rezension und einen Like im Plugin Store freuen.
    Wenn etwas nicht stimmt, bitte erst hier das Problem melden, bevor ihr eine schlechte Rezension schreibt.

    AutoIt

    1. #include <ButtonConstants.au3>
    2. #include <EditConstants.au3>
    3. #include <GUIConstantsEx.au3>
    4. #include <StaticConstants.au3>
    5. #include <WindowsConstants.au3>
    6. $Form1 = GUICreate("Leertasten Spammer", 138, 58, 192, 124)
    7. $Button1 = GUICtrlCreateButton("Start", 0, 0, 65, 25)
    8. $Button2 = GUICtrlCreateButton("Stop", 72, 0, 65, 25)
    9. $Button3 = GUICtrlCreateButton("Schließen", 32, 32, 65, 25)
    10. GUISetState()
    11. Global $playing = 0
    12. HotKeySet("{F1}", "_start")
    13. HotKeySet("{F2}", "_stop")
    14. While 1
    15. $msg = GUIGetMsg()
    16. Select
    17. Case $msg = $GUI_EVENT_CLOSE
    18. ExitLoop
    19. Case $msg = $Button1
    20. AdlibRegister('_Space', 1700) ; alle 10 ms wird die Funktion aufgerufen
    21. Case $msg = $Button2
    22. AdlibUnregister()
    23. Case $msg = $Button3
    24. Exit
    25. EndSelect
    26. Wend
    27. Func _start()
    28. $playing = 1
    29. EndFunc
    30. Func _stop()
    31. $playing = 0
    32. EndFunc
    33. If $playing Then
    34. AdlibRegister('_Space', 1700)
    35. EndIf
    36. Func _Space()
    37. Send("{^}")
    38. MouseClick("left")
    39. MouseClick("left")
    40. MouseClick("left")
    41. MouseClick("left")
    42. MouseClick("left")
    43. MouseClick("left")
    44. MouseClick("left")
    45. Send("1")
    46. EndFunc

    so habe ich das nun aber das funktioniert leider nicht
    was ist falsch?
    Bitte autoit-BBCode benutzen ([code=autoit])

    siehe mein "Edit" oben,
    hab dein Code ma bissl umschrieben (die Includes brauchst du hier eigentlich nicht)
    [autoit]$gui = GUICreate("Leertasten Spammer", 138, 58, 192, 124)
    $btnStart = GUICtrlCreateButton("Start", 0, 0, 65, 25)
    $btnStop = GUICtrlCreateButton("Stop", 72, 0, 65, 25)
    $btnClose = GUICtrlCreateButton("Schließen", 32, 32, 65, 25)
    GUISetState()

    HotKeySet("{F1}", "_start")
    HotKeySet("{F2}", "_stop")

    While Sleep(10)
    $msg = GUIGetMsg()
    Select
    Case $msg = -3 Or $msg = $btnClose
    Exit
    Case $msg = $btnStart
    _start()
    Case $msg = $btnStop
    _stop()
    EndSelect
    Wend

    Func _start()
    AdlibRegister('_Space', 1700)
    EndFunc

    Func _stop()
    AdlibUnregister()
    EndFunc

    Func _Space()
    Send("{^}")
    For $i = 1 To 7
    MouseClick("left")
    Next
    Send("1")
    EndFunc[/autoit]
    Wenn ihr zufrieden mit dem Support hier seid, würde ich mich natürlich über eine positive Rezension und einen Like im Plugin Store freuen.
    Wenn etwas nicht stimmt, bitte erst hier das Problem melden, bevor ihr eine schlechte Rezension schreibt.
    vielleicht vor dem adlibregister nochma adlibunregister (bzw _stop()) benutzen, damit es nicht 2x ausgeführt wird?
    bin mir nicht sicher, ob eine funktion 2x in adlib ausgeführt werden kann, wäre aber logisch
    Wenn ihr zufrieden mit dem Support hier seid, würde ich mich natürlich über eine positive Rezension und einen Like im Plugin Store freuen.
    Wenn etwas nicht stimmt, bitte erst hier das Problem melden, bevor ihr eine schlechte Rezension schreibt.
    Also, weiß ja nicht was ihr mit adlib.... machen wollt, aber es gibt da doch ne viel schönere Lösung
    [autoit]#include <ButtonConstants.au3>
    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>

    Global $iStart = False

    $Form1 = GUICreate("Leertasten Spammer", 138, 58, 192, 124)
    $Button1 = GUICtrlCreateButton("Start", 0, 0, 65, 25)
    $Button2 = GUICtrlCreateButton("Stop", 72, 0, 65, 25)
    $Button3 = GUICtrlCreateButton("Schließen", 32, 32, 65, 25)
    GUISetState()

    While 1
    $msg = GUIGetMsg()
    Select
    Case $msg = $GUI_EVENT_CLOSE
    ExitLoop
    Case $msg = $Button1
    $iStart = True
    Case $msg = $Button2
    $iStart = False
    Case $msg = $Button3
    Exit
    EndSelect

    If ($iStart = True) Then ; Alles hier wird nur aufgefüht wenn $iStart auf True ist
    Send("{^}")
    For $i = 1 To 7
    MouseClick("left")
    Next
    Send("1")
    EndIf
    Wend[/autoit]
    Ich würde es an deiner Stelle so nicht ausführen da du probleme beim schliessen bekommen könntest ;)
    Danke



    also starten funktioniert schonmal

    aber stoppen kann ich das ganze nicht

    ich drücke F1 und das proggi legt los



    drücke ich f2 bleibt es aber an wird aber nicht angehalten

    Hatte das gleiche Problem letztens bei meinem Fernseher, er wollte nicht mehr starten und stoppen :P Habe mir nach jahrelanger Treue gegenüber meinem Röhrenfernseher einen Samsung LED Fernseher zugelegt!
    Deine Lösung für das eigentlich Problem ist sehr gut und vor allem einfacher! Falls es bei mir mal haken sollte, weiß ich ja jetzt wo ich schauen muss.
Botcheck