Autohotkey, por que essa tecla de atalho Backspace do Windows Explorer não dispara a si mesma, mesmo sem um prefixo $

1

Neste howtogeek post , há um trecho como este, use o Backspace para subir um nível de pasta no Windows Explorer:

#IfWinActive, ahk_class CabinetWClass

; Please run on Windows 7+ 
Backspace::
    ControlGet renamestatus,Visible,,Edit1,A
    ControlGetFocus focussed, A
    if(renamestatus!=1 && (focussed=="DirectUIHWND3"||focussed==SysTreeView321))
    {
        MsgBox, Don't check this ; debug
        SendInput !{Up}
    }else{
        tooltip, Back-delete a char
        Send {Backspace} ; Why does it not trigger another Backspace hotkey?
    }
return
#IfWinActive

Mas estou muito perplexo porque ele pode escrever

Backspace::

em vez de

$Backspace::

De acordo com o doc, quando você está renomeando um arquivo no Windows 7 Explorer, o no- $ case fará com que um pressionamento de Backspace acione mais Backspaces infinitamente, MAS, na verdade, isso não acontece. Alguém pode ajudar a explicar isso?

Experimente o Autohotkey 1.1.13.01, no Windows 7.

    
por Jimm Chen 07.02.2015 / 04:26

1 resposta

1

Do tópico de ajuda #UseHook :

Teclas de atalho serão implementadas usando o método padrão (RegisterHotkey (), se possível; caso contrário, o gancho do teclado).

Normalmente, a função RegisterHotkey () da API do Windows é usada para implementar uma tecla de atalho do teclado sempre que possível. No entanto, a capacidade de resposta das teclas de atalho pode ser melhor sob algumas condições, se o gancho do teclado for usado.

Ativar esta diretiva é equivalente a usar o prefixo $ na definição de cada tecla de atalho afetada.

Portanto, a tecla de atalho tem um dos dois métodos de registro e várias maneiras de definir um desses dois métodos de registro. Você pode verificar qual método está sendo usado para registrar a tecla de atalho executando o script como #persistent ou como parte de outro script que é persistente e, em seguida, abrindo a janela de script do ícone da bandeja e selecionando View > Hotkeys and their methods (Ctrl+H) . A tecla de atalho será listada aqui com k-hook ou reg - as duas opções descritas acima no tópico de ajuda #UseHook .

O seguinte resultará em k-hook :

#UseHook
Backspace::

Isso também resultará em um gancho de teclado:

$Backspace::

Isso também resultará em um gancho de teclado:

#IfWinActive, ahk_class CabinetWClass
Backspace::

Isso resultará em um registro regular e reg será exibido na lista de atalhos:

Backspace::

Ou mais geralmente:

#IfWinActive
Backspace::

A distinção importante é o resultado final, e se é registrado como um gancho de teclado ou não. Se você quiser tentar o Backspace infinitamente repetitivo, remova ou substitua o #IfWinActive, ahk_class CabinetWClass e pressione backspace na janela do Explorer. As coisas devem ficar loucas por um segundo e então você deve receber uma mensagem de que muitas teclas de atalho foram recebidas e tem certeza de que deseja continuar. Divirta-se com isso.

Outra ferramenta que você pode estar interessado é apenas adicionando o ícone do botão 'Up' de volta para suas pastas do Windows 7 ... o livre utilitário abaixo faz um ótimo trabalho e você pode simplesmente selecionar a 1 das 4 opções disponíveis no instalador assim que você fizer o download e executá-lo.

    
por 26.09.2015 / 06:56

Tags