AutoHotKey e Windows 8: Alt + Tab comando não funciona

4

Eu não consigo fazer funcionar se eu uso

AltTab

ou

Send {Alt down}{tab}{Alt up}

Eu posso verificar se outros comandos funcionam porque eu posso fazer com que minhas teclas de atalho exibam um MessageBox. Parece que o W8 mudou coisas o suficiente para quebrar os ganchos Alt + Tab do AHK.

Procurando por uma solução alternativa. Eu estou tentando mapear LCtrl + Tab para Alt + Tab (e as versões Shift deles).

    
por Steven Lu 15.07.2012 / 03:25

4 respostas

7

Definir UIAccess = true no manifesto incorporado do executável parece resolver esse problema. O executável também deve estar em um local confiável, como a pasta Arquivos de programas. Para mais informações e um script que faz as modificações necessárias para você, encontre EnableUIAccess no fórum do AutoHotkey.

Obrigado a Cliff Smolinsky por postar o seguinte no rastreador de problemas do Synergy :

A number of security changes have been implemented in Windows 8 which prevent programs which are not Metro apps from injecting keys that would remove you from the Metro environment. The way this works is that the keyboard shortcut is ignored if it doesn't come from a physical keyboard or a program that has the appropriate permissions. [...] In order to have the proper permissions, the program must be built with UIAccess

Não foi possível confirmar isso por meio de qualquer fonte oficial, além do seguinte comentário vago no MSDN:

An accessibility application can use SendInput to inject keystrokes corresponding to application launch shortcut keys that are handled by the shell. This functionality is not guaranteed to work for other types of applications.

    
por 27.10.2012 / 07:09
5

Descobri que eu poderia enviar uma Alt + guia com o seguinte:

F1::SendInput, !{Tab}

Em outras palavras, eu tive que mudar "Enviar" para "SendInput" para fazer isso funcionar com o Windows 8.

    
por 10.10.2012 / 04:36
1

Se você estiver usando o AutoHotkey (Básico), a base de código não será atualizada desde setembro de 2009. Obviamente, nenhuma alteração fundamental no Windows 8 foi corrigida. O AutoHotkey_L está muito mais atualizado, tendo sido atualizado pela última vez este mês. No entanto, olhando para o changelog , o suporte do Windows 8 é mínimo.

Se o seu script ainda não funcionar mesmo após a instalação do AutoHotkey_L, você pode tentar o outro Enviar comandos:

  • SendRaw
  • SendInput
  • SendPlay
  • SendEvent

Caso contrário, você só precisa ser paciente e esperar que os desenvolvedores trabalhem para adicionar suporte ao Windows 8.

    
por 15.07.2012 / 04:18
1

A primeira resposta me deu uma pista a seguir, e o que funcionou para mim (com o Vista) foi:

²::SendEvent, !{Tab}

Obrigado!

    
por 08.05.2013 / 13:27