Tastendruck erkennen

11/22/2010 19:34 Bird Of Hermes#1
Hallo,
ich versuche mich gerade zum ersten mal an AutoIt und ich bekomme es einfach nicht hin mein Programm zu beenden indem ich eine Taste z.B. ESC drücke.

Code:
Global $Paused
HotKeySet("{PAUSE}", "TogglePause")
HotKeySet("{ESC}", "Terminate")

Do
	AutoItSetOption("MouseCoordMode", 0)
	BlockInput(1)
	MouseClick("left", 848, 506, 1)
	Sleep(20)
	MouseClick("left", 1018, 587, 1)
	Sleep(20)
	MouseClick("left", 1023, 601, 1)
	Sleep(20)
	BlockInput(0) 
Until  1=2



Func TogglePause()
    $Paused = NOT $Paused
    While $Paused
        sleep(100)
        ToolTip('Script is "Paused"',0,0)
    WEnd
    ToolTip("")
EndFunc

Func Terminate()
    Exit 0
EndFunc
Was mache ich falsch?
Und wie mache ich es richtig?
11/22/2010 19:46 ZeraPain#2
naja, dein problem ist, dass du alle benutzereingaben blockierst und somit
wird natürlich auch der hotkey-druck nicht erkannt.
so wäre es richtig:

Code:
Global $Paused = False
AutoItSetOption("MouseCoordMode", 0)

HotKeySet("{PAUSE}", "TogglePause")
HotKeySet("{ESC}", "Terminate")

While Not $Paused
	MouseClick("left", 848, 506, 1)
	Sleep(20)
	MouseClick("left", 1018, 587, 1)
	Sleep(20)
	MouseClick("left", 1023, 601, 1)
	Sleep(20)
WEnd

Func TogglePause()
	ToolTip('Script is "Paused"')
	If $Paused = True Then
		$Paused = False
	Else
		$Paused = True
	EndIf
	While $Paused
		Sleep(100)
	WEnd
	ToolTip('Script is "active"')
EndFunc   ;==>TogglePause

Func Terminate()
	Exit
EndFunc   ;==>Terminate
11/22/2010 19:51 Bird Of Hermes#3
Ah crap -.-

den teil hatte ich mir aus ner vorlage kopiert.
Das ist peinlich >_>
danke