Descrição do Projecto
SharpKeys é um utilitário que gere uma chave de Registo que permite ao Windows refazer uma chave para qualquer outra chave. Incluído na aplicação está uma lista de teclas comuns de teclado e uma funcionalidade Type Key para reconhecer automaticamente a maioria das teclas de teclado. Foi originalmente desenvolvida em C# utilizando .NET v2 mas foi actualizada para suportar .NET 4.0 Client Profile
Call for feedback!
I finalmente fundiu a alteração de código que altera a forma como as teclas são introduzidas na lista, o que inclui a procura de códigos de teclas de três bytes e deve permitir a capacidade de remapear Alt+Gr. O que não sei é se funciona ou não, por isso, se a tecla Alt+Gr for remapeada com sucesso ou sem sucesso, por favor informe as pessoas na secção Questões – obrigado!
Missão Original:
Isto é algo que juntei para ajudar as pessoas com os seus mapeamentos de teclado. O que é um mapeamento de teclado? Quantas vezes por dia acerta acidentalmente em cAPS lOCK BLOQUEIO POR DISTAQUE E FIM DE TER DE VOLTAR ABAIXAR e reescrever coisas? Para mim era pelo menos uma vez por hora – de facto, costumava carregar na tecla Caps Lock para não bater mais, mas encontrei algo melhor no Windows XP, assim como 2000, Server 2003, Vista, Windows 7, Windows 8, e Windows 10. Há um pequeno hack de registo usado que lhe permite refazer teclas através de um teclado. Para mim, isto significava que eu disse ao meu computador para tratar o Caps Lock como se fosse uma tecla de deslocamento, o que agora faz.
Quanto mais começava a trabalhar com outro teclado, mais queria ter esta capacidade de mapear outras teclas através do meu teclado, mas trabalhar com os números Hex e ter de procurar demasiado códigos de scan pode ser doloroso…. daí o SharpKeys.
SharpKeys não é responsável por nenhuma das funcionalidades de remapeamento do teclado – simplesmente expõe uma chave de Registo que controla a forma como o Windows remapa as teclas e está disponível para nós desde o Windows 2000. A lista de chaves que estão incluídas na aplicação é da maioria dos teclados baseados nos EUA que utilizei ao longo dos anos e não é garantido que esteja 100% completa para os teclados mundiais.
Install
Manual
Clique no botão Releases no cabeçalho acima
Nota: que para as versões ARM do Windows, utilize o ficheiro ZIP para obter o EXE: a MSI procura x64/x86.
winget
Se estiver a utilizar WinGet
winget install sharpkeys
scoop
Se estiver a utilizar scoop
scoop install sharpkeys
Como é que o utilizo? Para começar
- Launch SharpKeys, seleccionando o seu ícone a partir do menu Iniciar. Se houver algum erro reportado, por favor verifique a secção Resolução de Problemas abaixo
li>Adicionar um novo mapeamento de chaves ou editar um já existenteli>Clicar “Escrever no registo” e aguardar por uma confirmação de que o registo foi actualizado com sucessoli>Fechar SharpKeys e ou sair (e voltar a entrar) ou reiniciar a sessão para aplicar os novos mapeamentos
Coisas que o SharpKeys irá fazer:
- Mapa uma chave inteira para qualquer outra chave – e.Por exemplo, pode refazer o bloqueio das teclas de Caps para uma tecla Shift
- Remappear mais de uma tecla para uma única tecla – por exemplo, pode refazer cada tecla de um teclado à letra Q
- Forçar a procura da tecla ALT esquerda ou direita na lista de teclas disponíveis porque a tecla Type Key não pode procurar ALT
- Permitir trocar duas teclas uma com a outra – e.g. Pode trocar o Windows Esquerdo com Controlo Esquerdo e vice-versa
Coisas que a SharpKeys não fará:
- Map multiplas teclas pressionadas para uma tecla – por exemplo, não suportará uma tentativa de remapear Ctrl+C para a tecla F5
- Map cliques do rato para qualquer tecla
- Suporte certas teclas de hardware que nunca chegam ao Windows – por exemplo As teclas de volume da Logitech ou a maioria das teclas Fn
- Suporte múltiplos mapeamentos para diferentes utilizadores – a tecla Windows a ser afinada é para uma máquina inteira
- Protege-o de si mesmo – se desactivar a sua tecla DEL e não conseguir iniciar sessão porque Ctrl+Alt+Del não funciona agora, terá de reformatar
FAQ e respostas adicionais
Q: Posso refazer uma combinação de chaves para uma chave?
A: Infelizmente, não. SharpKeys apenas remapa chaves inteiras em vez de uma chave modificada. Por exemplo, pode refazer Ctrl ou C, mas não pode refazer Ctrl+C para outra chave. Dito isto, a ferramenta Microsoft PowerToys oferece esta funcionalidade – pode aprender mais sobre a sua ferramenta aqui: Microsoft PowerToys.
p>Q: Posso remapear um clique do rato para uma nova tecla?
A: Desculpe, mas não. A tecnologia de remapeamento que o Windows utiliza para refazer as suas teclas não tem conhecimento do seu rato.
Q: Porque não posso refazer a minha tecla Fn no meu teclado?
A: Algumas teclas simplesmente nunca chegam ao Windows. No caso da maioria das teclas Fn, elas são interpretadas pelo hardware e nunca são passadas para o SO, não importa como parecem funcionar… se o Windows não vê a tecla, não há maneira de a tecla ser remapeada pelo Windows.
Q: Digite uma tecla mostra 00_100 – posso remapear esta tecla?
A: 00_100 é um código que o Windows reporta quando uma chave é capturada por hardware ou outro driver, por isso não há maneira de refazer com sucesso essa chave, especialmente porque várias chaves podem devolver o mesmo código 00_100.
Q: Digite uma chave mostra Chave Desconhecida – posso refazer esta chave?
A: É provável que esta seja apenas uma chave que nunca foi vista pela SharpKeys antes, por isso não sabe o que fazer com ela. Abra um problema neste site para este projecto e alguém da comunidade de Código Aberto pode procurar adicioná-la.
Q: Digite uma chave mostra um código que é E0_nnnn – posso refazer esta chave?
A: Se um scancode tem 6 caracteres, então é o que é conhecido como um scancode de triplo byte que é algo que não pode ser refazido pelo Registo do Windows. Para refazer uma chave como esta, necessitará de um remapper activo como Microsoft PowerToys ou AutoHotKeys ou a aplicação que veio com o teclado (por exemplo, Logitech’s Options) se disponível.
Q: O que é tudo isto sobre “scan codes”?
A: Sempre que premir uma tecla no teclado, este envia um código binário para o controlador do teclado no seu PC. Esse código é passado para o Windows (na maioria dos casos) e o Windows interpreta-o como “carregaram no código 0x3A para que seja Caps Lock – ligue isso”! O que as versões modernas do Windows também fazem é verificar uma chave de registo quando a máquina arranca. O que essa chave de registo faz é dizer ao Windows “mesmo que tenham premido 0x3A, trate-o como 0x2A” (que é o turno da esquerda). O que a SharpKeys faz é editar esta chave de registo usando uma simples IU e desviando o editor de registo.
p>Q: Tenho um novo PC que tem um botão de desligar que quero refazer – posso refazer esta chave?
A: Muitas pessoas pedem E0_1F65, mas como a pergunta acima chama, não é possível refazer códigos de scan de três bytes com o Registo do Windows. Isto aplica-se à Lenovo, HP, Dell, e qualquer outro fabricante de PC portátil ou desktop.p>Q: Digite uma chave não reconhece a chave Alt quando a digito – como faço para refazer esta chave?
A: O código de scan da chave Alt não passa pelo sistema, para chegar à janela Tipo uma Chave. Basicamente, quando se digita Alt, o Windows envia-a para o menu do sistema e activa-a, em vez de enviar o scancode para a janela. Ainda pode refazer esta chave, mas verá para a seleccionar manualmente da lista; irá encontrá-la no agrupamento de chaves marcado como “Especial”.
Q: Qual é a refilmagem mais louca que já fez?
A: Penso que é a minha refilmagem activa nos produtos Surface, onde algumas das teclas de navegação do cursor partilham espaço com F9-F12. Uma vez que uso F1-F8 para muito para Office ou Visual Studio, não quero ter de me lembrar de carregar em Fn, mas também não quero deixar Fn-Lock ligado porque também preciso de Home, End, PgUp, e PgDn. Soooooo, deixo Fn-Lock ligado e depois remapei F9-F12 para Home/End/PgUp/PgDn e depois Home/End/PgUp/PgDn para F9-F12. Também desabilitei o Caps Lock e refiz o Alt Direito para Janelas Esquerdas porque isso é apenas feliz para um portátil. Uma vez que outras pessoas podem fazer uso disto, coloquei o ficheiro SKL no depósito aqui.
p>Q: O que é uma tecla “Desconhecida”?
A: Não há maneira de conseguir um laboratório de teclados para testar, especialmente quando quase todos os teclados modernos vêm com teclas extra ou teclas específicas de cada idioma – algumas empresas estão até a fazer teclados com teclas especiais para o seu próprio software ou linha de produtos. Consequentemente, quando se usa a tecla Type Key e esta atinge uma tecla que a SharpKeys pode não conhecer, ainda pode ser mapeada, mesmo que a etiqueta diga desconhecido. Se houver uma chave que tenha no seu teclado que esteja listada como Desconhecida mas tenha uma usada para ela, envie-me um e-mail e eu verei como adicionar uma etiqueta melhor para ela.
Q: O que acontece se eu usar o seu utilitário e adicionar um monte de mapeamento de chaves e já não puder usar o meu computador?
A: Bem, mais ou menos, estás lixado. Testei muito esta aplicação, e há muito pouco risco em modificar esta entrada do Registo, mas se desligar uma chave que precisa para a sua palavra-passe, está na sua maioria sem sorte. Uma opção é tentar usar o teclado no ecrã que está disponível através das opções de Acessibilidade, pois isso não seria impactado por refazer as definições para o Windows. Também pode tentar ligar um teclado USB se estiver num portátil ou pode arrancar no modo de segurança e remover a tecla Scancode Map Registry, mas ficará por sua conta. Dito isto, por favor tenha cuidado e estará a usar SharpKeys por sua conta e risco!
Q: Tenho de ter suporte de teclas combinadas ou suporte de teclas activadas por três bytes! Porque não faz esta mudança?!
A: Não há absolutamente nada que eu possa fazer a este respeito: O Windows está a refazer as chaves e esta aplicação é apenas um UX para a chave de Registo que controla a refilmagem. Na verdade, penso que já respondi a isto nas FAQ. Dito isto, se quiser um nível mais profundo de suporte de remapeamento, por favor verifique o Microsoft PowerToys.
Layouts de teclado guardados existentes
- Colemak – SKL via GitHub via @NathanDai5287
- Surface – ficheiro SKL descrito na FAQ
Esperança para contribuições GitHub:
- Uma lista mais completa para suportar mais teclados internacionais
- Uma funcionalidade de importação/exportação que permite às pessoas trocarem os keymaps mais facilmente
- Continuação do apoio a novos .NET Frameworks