Sí, es mucho mejor usar un
toggle en vez del
loop. Te iba a recomendar este enfoque, pero asuntos del
mundo real me tenían ocupado. Disculpá la demora.
La variable
Togglescum no necesita ser declarada global de forma explícita —ya lo es, porque la declaraste fuera de una función—, así que se elimina la declaración. Por otra parte, el script no se detiene porque la versión estándar de
AutoHotkey no es
multithread, de modo que el ciclo
while nunca se entera del segundo
^f, está totalmente ocupado recorriendo el bloque una y otra vez. Este problema se soluciona agregando un segundo
thread, hecho con la directiva que encabeza el script.
Ah, y no te olvides de cerrar el
Hotkey con un
return.
Probado en
MS Notepad.
Code: Select all
#MaxThreadsPerHotkey 2
Togglescum := 0
^f::
Togglescum := !Togglescum
while Togglescum {
Send {Space}
Sleep 1000
Send {Space}
Sleep 1000
Send x
Sleep 1500
Send x
Sleep 1500
}
return
Sí, es mucho mejor usar un [c]toggle[/c] en vez del [c]loop[/c]. Te iba a recomendar este enfoque, pero asuntos del [i]mundo real[/i] me tenían ocupado. Disculpá la demora.
La variable [c]Togglescum[/c] no necesita ser declarada global de forma explícita —ya lo es, porque la declaraste fuera de una función—, así que se elimina la declaración. Por otra parte, el script no se detiene porque la versión estándar de [c]AutoHotkey[/c] no es [i]multithread[/i], de modo que el ciclo [c]while[/c] nunca se entera del segundo [c]^f[/c], está totalmente ocupado recorriendo el bloque una y otra vez. Este problema se soluciona agregando un segundo [i]thread[/i], hecho con la directiva que encabeza el script.
Ah, y no te olvides de cerrar el [c]Hotkey[/c] con un [c]return[/c].
Probado en [c]MS Notepad[/c].
[code]
#MaxThreadsPerHotkey 2
Togglescum := 0
^f::
Togglescum := !Togglescum
while Togglescum {
Send {Space}
Sleep 1000
Send {Space}
Sleep 1000
Send x
Sleep 1500
Send x
Sleep 1500
}
return
[/code]