Desative (ative) as teclas de atalho padrão Win + Arrows para torná-las utilizáveis ​​em outros aplicativos

9

No Windows 7, gostaria de desvincular o padrão Win+ Up/ Down/ Left/ Rightpara que eles possam ser vinculados diretamente * em outros aplicativos. Como isso pode ser feito?

Essas teclas de atalho podem ser facilmente desativadas por:

  1. Indo para o Centro de Facilidade de Acesso ,
  2. selecionando Facilitar o uso do teclado e
  3. Verificando Impedir que as janelas sejam organizadas automaticamente quando movidas para a borda da tela :

    Configuração

Porém, mesmo ao usar essa configuração e desabilitar as teclas de atalho (elas não fazem nada), as teclas de atalho ainda não podem ser vinculadas em outros aplicativos.


Eu tentei das seguintes maneiras e nenhuma delas funciona :

  1. Fazendo a alteração acima no Centro de Facilidade de Acesso
  2. Ativando política Desative as teclas de atalho do Windows + X , que são as mesmas da configuração: HKCU\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\NoWinKeyspara 1. (Somente com essa configuração, as teclas de atalho em questão ainda funcionam como de costume.)
  3. Desativando a chave do Windows, conforme descrito em KB216893 , definindo System\CurrentControlSet\Control\Keyboard Layout\Scancode Map. Isso desativa completamente a tecla Windows, para que ela não possa ser ligada ou usada em qualquer lugar.
  4. Habilitando a política Desativar o Windows Mobility Center


Alguns pesquisadores revelaram este post :

as combinações de teclas Win + Arrow são uma das várias (juntamente com Win + P, Win + U e Win + L) que são de alguma forma "super-registradas / reservadas" no Windows 7. Eu tenho tentado rastrear onde e quando eles são reservados, mas até agora ficaram vazios. Também tentei vários truques para reservá-los antes que o Windows tivesse uma chance, mas até agora nada funciona. Esses combos de teclas são bloqueados no Windows em um nível profundo e intrínseco, independentemente de você os usar ou não.

Esse cara não encontrou um caminho, mas talvez alguns de vocês saibam mais. Talvez haja alguma dll / exe que possamos corrigir facilmente. ;-)

*) Gostaria de evitar o uso de outras ferramentas, como o AutoHotKey, para conectar a tecla de atalho e remapear para outra coisa que possa ser associada a aplicativos comuns.

Qtax
fonte
Você tentou modificar o HKLM \ Software \ Microsoft \ Windows \ CurrentVersion \ Policies \ Explorer \ NoWinKeys? Sua pergunta disse que você mudou a do HKCU. Crie a chave se ela não estiver presente, reinicie e veja se ela tem algum efeito.
Zac B

Respostas:

7

Esse cara não encontrou um caminho, mas talvez alguns de vocês saibam mais.

Não é provável. Eu tenho tentado encontrar uma maneira de impedir que o Windows Vista + monopolize as teclas de atalho desde que foram lançadas.

O fato é que, diferentemente da maioria das teclas de atalho do Windows que podem ser desabilitadas com a NoWinKeysconfiguração, existem várias que não são registradas pelo Windows Explorer. Em vez disso, o CSRSS de nível mais alto (mais baixo?) Registra várias teclas de atalho no início do processo de inicialização, para que você possa não apenas registrá-las primeiro, mas também não há uma configuração para não usá-las. Estas são as chaves são tratadas especialmente:

Win + P
Win + L
Win + U
Win + G
Win + X
Ctrl + Shift + Esc
Ctrl + Alt + Del

Eles podem ser substituídos por determinados programas como o AutoHotkey, mas não da maneira que você está procurando (permitindo que os programas os registrem globalmente).

Talvez haja alguma dll / exe que possamos corrigir facilmente. ;-)

Isso também é bastante improvável. Exigiria invadir os principais componentes do Windows e, mesmo que o local onde as teclas de atalho estejam registradas fosse encontrado e corrigido, isso significaria que você teria que impedir que o software de segurança visse o patch como uma infecção e certifique-se de reaplicá-lo após cada Atualização do Windows.


Você pode experimentar o Windows Hotkey Explorer, que usa ganchos do Windows para determinar a origem das teclas de atalho globais. Infelizmente, apenas mostra esses combos especiais como reservados System, o que significa que eles são carregados pelo núcleo do Windows. O que é ainda mais interessante com WHE é que ele diz a mesma coisa para essas chaves, mesmo no Windows XP onde eles estão não utilizados. Isso implica que eles realmente não estão sendo lidos como os outros e, em vez de codificados, o que significa que, mesmo com ganchos de baixo nível do Windows, o WHE não pode acessá-los diretamente. Isso torna especialmente improvável que qualquer tipo de patch fácil, driver etc. possa ser feito para impedir que sejam vinculados.


Infelizmente, a melhor e mais eficaz solução seria deixar os comentários da Microsoft e esperar que eles sejam alterados em uma atualização futura, mas que raramente funcione.

No meu caso, simplesmente cedi e mudei minhas teclas de atalho do XMPlay para usar as teclas de seta no teclado numérico.

Synetech
fonte
Ligeiramente relacionado: Encontrei este tópico "RegisterHotkey - list?" que possui algumas informações interessantes e talvez possam ajudar a encontrar onde a tecla de atalho está definida. Se eu entendi corretamente no Vista (e no Win7 eu presumo), existe uma _gphkHashTablefunção do kernel que você pode usar para obter uma lista de teclas de atalho registradas. A pesquisa no Google só encontra alguns sites chineses - acho que apenas alguns caras na China gostam de brincar com isso. ;-)
Qtax 14/08/2012
Ele é possível, mas você teria que instalar um gancho para chegar à informação, em seguida, escrever e instalar um driver para carregar no início do processo de inicialização para corrigir o código na memória para evitar remendar o arquivo no disco.
Synetech 14/08/2012
0

Há pelo menos duas ferramentas para fazer isso.

O primeiro é o Microsoft Keyboard Layout Creator

insira a descrição da imagem aqui

O segundo é KeyTweak

insira a descrição da imagem aqui

Para obter mais informações sobre uma pergunta relacionada: Programa para reprogramar meu teclado?

climenole
fonte
1
Como as teclas de remapeamento ajudam a desvincular as teclas de atalho em questão? Como isso responde à pergunta?
Qtax 13/08/12
A única coisa que você pode fazer com essa 'solução' é remapear o teclado para não ter uma tecla do Windows, substituí-lo por outro código de verificação e mapear essa tecla. NÃO é uma boa solução, pois qualquer coisa que tente usar a chave Win para qualquer coisa seria inutilizável.
precisa saber é o seguinte
Apenas adivinhe aqui, mas teoricamente você pode criar um WinKey falso, registrar seu manipulador para obter todos os eventos relacionados e apenas refazer a exibição dos eventos com a tecla real do Windows. Que iria fornecer-lhe uma maneira de personalizar qualquer mapeamento relacionado a WinKey como quiser ... Embora, não sei se possível ...
Vajk Hermecz
0

O AutoHotkey pode substituir e fazer o que quiser com as teclas de atalho do Windows.
Consulte esta documentação: Substituindo ou desativando teclas de atalho .

O AutoHotkey também pode executar suas ações na janela ou no processo atual, vinculando as chaves de maneira diferente a diferentes processos. Veja, por exemplo, Ativando e manipulando janelas .

Para mais informações sobre o AutoHotkey, consulte:

Tutorial e visão geral da
documentação do AutoHotkey

harrymc
fonte
3
Eles disseram claramente que não queriam usar o AutoHotkey. A menos que você saiba como o AHK permite que outros programas vinculem essas chaves, não vejo como isso se aplica à questão.
Synetech 13/08/2012
Você pode conectar as teclas de atalho no AutoHotkey para que elas não façam nada ou executem alguma ação no AHK, mas isso não permite vincular essas teclas de atalho em qualquer outro aplicativo, que era a questão. (É por isso que eu disse na pergunta que respostas AHK não são de muito interesse.)
Qtax
@ Qtax: A ligação de chave por processo / janela do AutoHotkey me pareceu uma solução. Por que isso não funciona para você?
harrymc
1
@harrymc, porque se, por exemplo, ele quisesse usar o Winamp Win+Leftpara rebobinar, não há como o AutoHotkey fazer isso. Suponho que você possa fingir que o Winamp use uma tecla diferente, diga Win+Apara rebobinar e depois escreva um script AHK que detecta quando essa tecla é pressionada enquanto a janela do Winamp está ativa e depois envia o Winamp Win+A, mas isso não faz sentido, porque o ponto todo para teclas de atalho globais é fazê-las funcionar, não importa qual janela esteja ativa.
Synetech 13/08/2012
1
@ Qtax: Não conheço uma solução melhor. Peço desculpas se presumi a falta de conhecimento sobre a AHK de sua parte.
harrymc
0

Você pode adicionar o seguinte registro [WIN + R -> regedit.exe]:

HKEY_CURRENT_USER \ Software \ Microsoft \ Windows \ CurrentVersion \ Policies \ System + lado direito, crie um novo DWORD 32 bits + Clique duas vezes na entrada recém-criada DisableLockWorkstation e altere seu valor de 0 (zero) para 1 (um).

Ref. http://www.intowindows.com/how-to-disable-windowsl-shortcut-key-in-windows-78-1/

PS. Não é necessário reiniciar o xD

aemonge
fonte
O artigo e a configuração estão falando sobre a tecla de atalho Win + L. Isso desata as teclas de seta win +?
Qtax 7/05
Não, na verdade, apenas desvincular a vitória + L. Mas, vendo que isso é possível, aposto que há um caminho para as funções de seta.
aemonge