das sieht soweit schonmal gut aus.
das hauptproblem hier liegt darin, das du die abfragen in deiner switch abfrage nur dann aufrufst, wenn dein programm beendet wird.
also statt das in deiner switch abfrage bei case exit anzuwenden, entweder in den case else zweig packen, oder unter die switch abfrage.
jetzt musst du noch von den sleeps weg kommen.
sleep sollte man in autoit allgemein nicht nutzen. stattdessen macht es viel mehr sinn mit timern zu arbeiten.
in deinem falle musst du für jedes send einen timer anlegen. hierfür gibt es die funktionen timerinit und timerdiff.
timerinit() gibt die aktuelle laufzeit deiner cpu in millisekunden aus. timerdiff($timestamp) berechnet die differenz von dem zeitstempel, welcher von timerinit erzeugt wird, und der aktuellen laufzeit.
wird also zb bei 500.000ms cpu laufzeit
angewendet, so speichert $timer jetzt 500.000.
wird dann 2ms später (also bei 500.002 ms cpu laufzeit)
Code:
$diff = timerdiff($timer)
angewendet, so wird $diff berechnet aus 500.002 - 500.000 und demzufolge auf 2ms gesetzt.
dh es sind 2ms vergangen...
setzen wir das nun in deinen code ein, so erhalten wir folgendes:
Code:
Dim $timer1, $timer2
$Form1 = GUICreate("Privat-Bot", 167, 127, 193, 125)
$Checkbox1 = GUICtrlCreateCheckbox("1.Skill", 8, 24, 81, 17)
GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif")
$Checkbox2 = GUICtrlCreateCheckbox("2.Skill", 96, 24, 73, 17)
GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif")
$Checkbox3 = GUICtrlCreateCheckbox("Exp-Scrolls", 8, 64, 81, 17)
GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif")
$Checkbox4 = GUICtrlCreateCheckbox("Lilien", 96, 64, 57, 17)
GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif")
$Checkbox5 = GUICtrlCreateCheckbox("Samen", 8, 96, 81, 17)
GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif")
GUISetState(@SW_SHOW)
While 1
Switch GUIGetMsg()
Case -3
Exit
Case Else
If BitAND (GUICtrlRead($Checkbox1), 1) And TimerDiff($timer1)>=1000 Then
Send ("{1}")
$timer1 = TimerInit()
EndIf
If BitAND (GUICtrlRead($Checkbox2),1) And TimerDiff($timer2)>=1000 Then
Send ("{2}")
$timer2=TimerInit()
EndIf
EndSwitch
WEnd
vorteil hier ist, das du die timer beliebig für jede aktion einzeln setzen kannst =)