web-dev-qa-db-pt.com

Posso fazer com que Ctrl + Alt NÃO atue como o AltGr no Windows?

Muitos aplicativos, como o Google Docs, usam Ctrl+Alt atalhos como Ctrl+Alt+2 para a rubrica 2, Ctrl+Alt+m comentários etc. No entanto, no caso de layouts de teclados internacionais, Ctrl+Alt está mapeado para AltGr, muitos desses atalhos produzem caracteres especiais, por exemplo, Ctrl+Alt+2 = @. Portanto, esses atalhos não podem ser usados.

Existe uma maneira de desativar isto Ctrl+AltAltGr, de tal modo que AltGr+2 = @ but Ctrl+Alt+2 pode ser usado como um atalho?


Houve algum post anterior com respostas relacionadas a esse problema:

No entanto, as duas soluções estão relacionadas à não atribuição completa do caractere especial. Essas soluções não desativam o Ctrl+AltAltGr obrigatório. Isso significa que, para usar Ctrl+Alt+2 como atalho, não consigo escrever @, o que naturalmente não é uma opção.

34
Bittenus

Eu pesquisei mais e olhei para as outras respostas. Parece que a resposta curta é: Não! Trata o Windows Ctrl+Alt e AltGr identicamente.

Mas existe um hack. Essencialmente, não deixamos o Windows lidar com AltGr ligações de teclas e, em vez disso, use uma ferramenta de terceiros que saiba a diferença. Fazemos isso manualmente para cada tecla de chamuscado.

Esse hack não funciona com " dead keys ", como ~ ou ^.

.

Parte 1: Deixe o AutoHotKey converter  AltGr + Some Key para símbolos
AutoHotKey pode distinguir entre AltGrCtrl+Alt. Ele também pode transformar as teclas pressionadas, como AltGr + 2 para um único símbolo @, before O Windows aplica seu layout de teclado.

  1. Download e instale o AutoHotKey
  2. Crie um novo script, ou seja, um arquivo de texto sem formatação com a extensão .ahk
  3. Para cada caractere com o qual você deseja escrever AltGr+BUTTON= CHAR, crie uma linha como esta:
    <^>!BUTTON::SendInput {raw}CHAR
    Exemplo: AltGr+2= @ se torna <^>!2::SendInput {raw}@
  4. Salve o script

Se você quiser testar seu script, poderá criar algum mapeamento arbitrário como <^>!t::SendInput {raw}tttt. Clique duas vezes no script para aplicá-lo e teste se AltGr+t produz quatro t quando você digita.

.

Parte 2: Tire as janelas do caminho:
Queremos remover todas as atribuições de AltGr+Any Key no teclado, para que o Windows nunca os converta em caracteres.

Primeiro, precisamos criar um novo layout de teclado.

  1. Download O Criador de layout de teclado da Microsoft . É uma ferramenta simples que permite modificar o layout do teclado. ( Link para download )
  2. Abra a ferramenta e File -> Load Existing Keyboard E escolha o layout do teclado.
  3. Selecione File -> Save source as E atribua um novo nome.
  4. Marque a Alt+Ctrl (AltGr).
    Você pode selecionar File -> Save as Image Para anotar as atribuições originais.
  5. Remova todas as chaves atribuídas, clicando nelas, excluindo o símbolo e clique em OK
    Não limpe nenhuma chave morta! (Os cinza). Verifique todos os modificadores, ou seja, AltGrCtrlAlt, ou nenhum!
  6. Vá para Projet -> Propertie E dê um nome e uma descrição decentes.
  7. Salve: File -> Save Source File Para que você possa editá-lo mais tarde
  8. Configuração de exportação: Project -> Build DLL and Setup Package

Então precisamos aplicar esse novo layout de teclado.

  1. Localize os arquivos de instalação exportados na pasta Documentos e clique duas vezes em setup.exe. Isso instalará seu novo layout de teclado.
  2. Abra a configuração de entrada indo para Control Pannel -> Change keyboards and other input methods -> Change keybords
  3. Clique em Add selecione seu próprio teclado e torne-o padrão.
    Volte aqui e remova o teclado padrão, quando tudo estiver confiante.

.

Parte 3: Deixe o AutoHotKey assumir:
Agora vamos colocar tudo em ação:

  1. Verifique se o seu novo teclado está selecionado na barra de tarefas de idiomas e se o AutoHotKey não está sendo executado minimizado na bandeja de notificações.
  2. Tente digitar seus caracteres especiais. Isso não deve funcionar.
  3. Clique duas vezes no script AutoHotKey. Então lança
  4. Tente digitar caracteres especiais novamente. Isso agora deve funcionar com AltGr só.
  5. Para garantir que o script seja carregado quando o Windows iniciar, crie um atalho na pasta Start Menu\Programs\Startup

É isso aí! (ツ) Você pode compartilhar os arquivos de configuração do layout do teclado e o script .ahk Com outros computadores para pular a maioria das etapas.


Outros recursos:
http://answers.Microsoft.com/en-us/windows/forum/windows_7-desktop/replace-default-windows-keyboard-shortcut-behavior/0c5ff2a4-6bea-49a9-88bc -669049a1e107
http://office.Microsoft.com/en-us/Word-help/alt-gr-keys-HP005259063.aspx
https://devblogs.Microsoft.com/oldnewthing/20040329-00/?p=400
http://www.autohotkey.com/board/topic/61625-how-to-avoid-that-ctrl-alt-altgr/

18
Bittenus

Eu recomendaria que você desse uma olhada em AutoHotKey . É uma ferramenta gratuita e você também pode alterar os efeitos de atalho com muita facilidade. Dê uma olhada no Hotkey-Documentation no site deles. É realmente fácil de entender e muito fácil de usar. Você pode remapear todas as teclas/atalhos.

1
Christian

Eu recomendaria SharpKeys:

O SharpKeys é um hack do Registro usado para fazer com que certas teclas do teclado funcionem como outras teclas. Por exemplo, se você pressionar acidentalmente o Caps Lock com freqüência, poderá usar esse utilitário para mapear o Caps Lock para uma tecla Shift ou até mesmo desativá-lo completamente. Esta versão oficial inclui suporte para até 104 mapeamentos, uma extensa lista de chaves disponíveis e uma opção "Type Key" para ajudar no gerenciamento de mapeamentos.

Eu não o usei pessoalmente, mas conheço alguém que o usou no passado e está muito feliz com isso.

Não tenho certeza, mas talvez mudar o layout do teclado para (inglês do Reino Unido) possa ajudar. Aqui está um link em como .

0
Augustus Francis

Descobri que o teclado numérico pode ser usado em vez de teclas numéricas regulares para ativar os atalhos do Google Docs. Usando o AHK, isso também funciona em laptops sem teclas numéricas. Por exemplo,

<^<!2::SendInput ^!{Numpad2}

ativará o cabeçalho 2 sem imprimir @. Não há necessidade de usar o MSKLC.

0
Sebastian I