Wie kann ich bei Autohotkey eine Schleife erstellen, die mit ESC gestoppt wird?
Hallo alle zusammen,
ich versuche für GTA SA:MP einen AHK Keybinder zu erstellen. Im Moment hänge ich an folgendem Problem:
Ich möchte, dass wenn ich STRG-rechts+Numpad 0 drücke AHK eine Endlosschleife beginnt, die erst endet, wenn ich ESC drücke...
Die Schleife soll nur:
sendinput t/fish{enter}
sleep 1000
enthalten.
Zur Info:
Momentan habe ich es mit
<^Numpad0::
{
loop,5
sendinput t/fish{enter}
sleep 1000
}
return
"überbrückt". Das Wahre ist es aber wirklich noch nicht.. Mit "loop", "until" und "while" habe ich etwas experimentiert; bin aber kläglich gescheitert (bin noch Anfänger).
Kann mir bitte jemand den "richtigen" Code schicken und evt. noch erklären, wie er funktioniert? Wünschenswert wäre, wie beschrieben, dass wenn ich STRG-rechts+Num 0 drücke diese kleine Schleife solange läuft, bis ich sie mit ESC abbreche...
Vielen Dank!
1 Antwort
Probier es mal wie folgt. Möglicherweise reagiert es etwas langsamer. Deswegen hab ich Sleep schon auf 10 geändert.
<^Numpad0::
Loop
{
GetKeyState, Status, ESC
if Status = D
{
break
}
else
{
sendinput t/fish{enter}
sleep 10
}
}
Return
Bei GetKeyState wird der Status von Tasten abgefragt.
Hier also die ESC-Taste. Status = D bedeutet, wenn die Taste gedrückt wird. D Kommt von DOWN.
Status = U bedeutet übrigens, wenn die Taste nicht gedrückt ist.
U kommt von UP.
Also wenn die ESC-Taste gedrückt wird break ausgeführt. Die Schleife also verlassen.
Wenn die Taste nicht gedrückt ist, wird SENDINPUT... ausgeführt.
Wenn wieder STRG-rechts+Numpad0 gedrückt wird beginnt alles von vorne.
Funktioniert wunderbar, danke!
Die if-Funktion ist mir hier relativ klar, aber wärst Du noch so nett, mir ganz kurz diesen Abschnitt zu erläutern? Aus der AHK Seite mit den "Anleitungen" werde ich da noch nicht ganz schlau....
Danke noch einmal :)