Hi,
habe dir mal das Script bissl umgebaut und Kommentare eingefügt, damit du verstehst was dort los ist^^
Spoiler anzeigen
#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("MpBot by repins94", 180, 291, 297, 132)
GUISetCursor(0)
GUISetBkColor(0x808080)
$Label1 = GUICtrlCreateLabel("Scripted by Repins94", 16, 256, 151, 25)
GUICtrlSetFont(-1, 11, 800, 4, "Comic Sans MS")
GUICtrlSetColor(-1, 0x800000)
$Button1 = GUICtrlCreateButton("Start", 24, 24, 137, 41, $WS_GROUP)
$Button2 = GUICtrlCreateButton("Pause", 24, 88, 137, 41, $WS_GROUP)
$Button3 = GUICtrlCreateButton("Ende", 24, 152, 137, 41, $WS_GROUP)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
GUISetOnEvent($GUI_EVENT_CLOSE, "Close")
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]HotKeySet("{F1}", "_Start")
HotKeySet("{F3}", "_Ende")
HotKeySet("{Pause}", "_Pause")
Global $start = 0 ;Button wurde noch nicht gedrückt, global heisst, die Variable gilt auch innerhalb der Funktionen!
Global $pause = 0 ; Pausebutton wurde noch nicht gedrückt
Global $t ;startzeit des timers merken
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $Button1
_Start() ; Startfunktion aufrufen, Variable $start wird auf 1 gesetzt
Case $Button2
_pause() ; Pausefunktion aufrufen, Variable $start wird auf 0 gesetzt
Case $Button3
_Ende()
EndSwitch
If $start = 1 Then ;wenn der startbutton gedrückt wurde und...
If TimerDiff($t) > 500 Then ;...wenn mehr wie eine halbe sekunde seit start des timers vergangen ist dann
Send("{2}") ;die 2 senden
ToolTip("send {2} wird ausgeführt...")
$t = TimerInit() ;startzeit des timers merken
EndIf
Else ;wenn start nicht gedrückt wurde, dann ist pause^^
ToolTip("Zur Zeit ist Pause!!! Start drücken!")
EndIf
WEnd
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]Func _Start()
$start = 1
$t = TimerInit() ;startzeit des timers merken
ToolTip("Start wurde gedrückt")
EndFunc ;==>_Start
Func _Ende()
MsgBox(0, 0, "Ende wurde gedrückt, in 5 Sekunden wird das Programm geschlossen!", 5)
Exit
EndFunc ;==>_Ende
Func _pause()
ToolTip("Pause wurde gedrückt..." & @CRLF)
Sleep(1000)
$start = 0
EndFunc ;==>_pause
Func Close()
Exit
EndFunc ;==>Close
Anmerkungen von mir dazu:
- Das Sleep() hält dein Programm für diese Zeit an, d.h. alle Maus-Klicks auf die Buttons werden in dieser Zeit nicht registriert!
Im Prinzip ist es Geschmacksache, aber ich würde überall, wo du bestimmte Zeit "warten" musst, den Eventmodus verwenden, damit du nicht diese Klimmzüge über den Timer machen musst.
Dem Eventmodus ist es nämlich egal, ob du in deinem Programm mit einem Sleep(23451223) einige Minuten die Programmausführung angehalten hast, er "unterbricht" gewissermassen das Sleep() und macht sofort weiter...
- Den Call() -Befehl brauchst du nicht unbedingt, du kannst die Funktionen auch so wie in meinem Beispiel aufrufen
- Alle Deklarationen von Variablen und Hotkeyset() und GuiOnEvent() gehören IMMER VOR DIE ENDLOSSCHLEIFE! Stehen sie dahinter, werden sie niemals abgearbeitet...
- Der Übersicht halber gehören die Funktionen alle HINTER DIE SCHLEIFE!
- Wenn du mit Scite arbeitest, drück ab und zu mal (bei Extras) auf TIDY AUTOIT SOURCE oder Ctrl+T , dann wird der Code automatisch "schön" gesetzt^^
ansonsten viel Spass mit AutoIt
ciao
Andy
*/edit*/ Man könnte die Pausefunktion komplett wegfallenlassen....mach das Script kürzer und ändere es so, daß man die Pause mit einem 2. Tastendruck auf die Pausetaste wieder beendet^^