Hi,
bin noch nicht so ganz vertraut mit ahk. Meine Frage ist sicher einfach zu lösen. Was muss ich als Prüf-Bedingung am Ende einer Schleife eingeben, damit durch Drücken der Taste {Esc} eine Schleife verlassen wird? Da in der Schleife einige Pausen sind, ist es ja unklar, zu welchem Zeipunkt {Esc} gedrückt wird. Am Besten wäre es, wenn die Schleife sofort verlassen würde, andernfalls das Drücken von {Esc} wenigstens gemerkt wird bis zum Ende der Schleife.
Ich hoffe, ich konnte das einigermaßen verständlich formulieren.
Danke für Tipps.
Mit der ESC-Taste eine Loop-Schleife verlassen
Moderator: jNizM
-
- Posts: 14
- Joined: 02 Mar 2016, 04:57
Re: Mit der ESC-Taste eine Loop-Schleife verlassen
Moin und willkommen!
Für den Abbruch einer Schleife würde ich einen Hotkey nutzen und in der Hotkeyroutine eine Variable auf einen bestimmten Wert setzen, der dann in der Schleife als Abbruchbedingung geprüft wird. Die Prüfung der Abbruchbedingung kann dann am Anfang, am Ende oder auch vor jeder Anweisung der Schleife erfolgen, je nach dem, wie schnell die Schleife abgebrochen werden soll.
Eine Altenative wäre die GetKeyState Anweisung bzw. Funktion. Die greift aber nur dann, wenn der Anwender die Taste zum Zeitpunkt der Prüfung (immer noch) gedrückt hält.
Für den Abbruch einer Schleife würde ich einen Hotkey nutzen und in der Hotkeyroutine eine Variable auf einen bestimmten Wert setzen, der dann in der Schleife als Abbruchbedingung geprüft wird. Die Prüfung der Abbruchbedingung kann dann am Anfang, am Ende oder auch vor jeder Anweisung der Schleife erfolgen, je nach dem, wie schnell die Schleife abgebrochen werden soll.
Eine Altenative wäre die GetKeyState Anweisung bzw. Funktion. Die greift aber nur dann, wenn der Anwender die Taste zum Zeitpunkt der Prüfung (immer noch) gedrückt hält.
Re: Mit der ESC-Taste eine Loop-Schleife verlassen
danke 'just me'
Test-script
Test-script
Code: Select all
;-------------------------------------
;- F8=START ESCape=BREAK loop
;-------------------------------------
F8::
Loop
{
tooltip, Loop is running
If GetKeyState("ESC","P")
{
tooltip
Break
}
}
Return
-
- Posts: 14
- Joined: 02 Mar 2016, 04:57
Re: Mit der ESC-Taste eine Loop-Schleife verlassen
Vielen Dank !
Re: Mit der ESC-Taste eine Loop-Schleife verlassen
Huhu,
ich mache es noch etwas 'eleganter' und frage ab, ob der User die Schleife verlassen will.
PS: Nicht getestet, aber aus einem an sich funktionierenden Script herauskopiert.
ich mache es noch etwas 'eleganter' und frage ab, ob der User die Schleife verlassen will.
Code: Select all
F8::
ende := FALSE
Loop
{
tooltip, Loop is running
If GetKeyState("ESC","P")
{
MsgBox, 36, Ende?, Schleife beenden?
ifMsgBox, Yes
ende := TRUE
}
if ende = TRUE
{
tooltip
Break
}
; Hier dann das einfügen, was in der Schliefe passieren soll, BIS ESC gedrückt wird.
}
Return
Re: Mit der ESC-Taste eine Loop-Schleife verlassen
Hallo Gucky_87,
... danke für den Tipp, aber bei mir läuft das nicht mit If ende = TRUE, sondern nur mit If ende:
Viele Grüße
Lucky Joe
... danke für den Tipp, aber bei mir läuft das nicht mit If ende = TRUE, sondern nur mit If ende:
Code: Select all
F8::
z = 0
ende := FALSE
Loop
{
z += 1
tooltip, Loop is running %z%
Sleep 10
If GetKeyState("ESC","P")
{
MsgBox, 36, Ende?, Schleife beenden?
ifMsgBox, Yes
ende := TRUE
}
; if ende = TRUE ; <<== funktioniert bei mir nicht
If ende
{
tooltip
Break
}
; Hier dann das einfügen, was in der Schliefe passieren soll, BIS ESC gedrückt wird.
}
Until z = 200
tooltip
Return
Lucky Joe
Herzliche Grüße aus dem Rheinland
Lucky Joe
Lucky Joe
Who is online
Users browsing this forum: Rohwedder and 49 guests