O código da resposta aceita (como está listado no momento em que este texto foi escrito) tem um retorno dentro da declaração if
...
space::
if WinActive("ahk_class Notepad")
{
send {Asc 32}
return
}
A melhor prática seria colocar o return
fora da instrução if (colocar um retorno no final de qualquer código de tecla de atalho), para que ele sempre retorne, portanto, se esse bloco de código for usado em outro arquivo e / ou com outro código, a execução não continuará além da rotina que manipula a tecla de atalho space::
.
Atualmente, qualquer código subseqüente ainda será executado se o espaço for pressionado em uma janela que não seja do bloco de notas.
A ligeira modificação para corrigir isso seria a seguinte:
space::
if WinActive("ahk_class Notepad")
{
send {Asc 32}
}
return
Se a instrução return
estiver fora da instrução if
, você também poderá se livrar dos colchetes da única linha send
após a instrução if:
space::
if WinActive("ahk_class Notepad")
send {Asc 32}
return
Uma pequena variação disso seria simplesmente retornar se o Notepad não estiver ativo. Isso pode ser útil em casos em que há um monte de código a seguir (em vez de apenas uma única instrução send
), basicamente porque pode ser mais fácil de ler e entender ...
space::
if !WinActive("ahk_class Notepad")
return ; execution will end here unless Notepad is active
send {Asc 32}
...
...
; lots of other code can be added here
; without encompassing it in an if {} block
...
...
return ; make sure nothing following this will execute