Você pode usar AutoHotKey para criar uma série de chaves inativas que permitirão que você inclua qualquer acento que precisar. Por exemplo, o script a seguir permitirá que você use as teclas ~ e n para tornar ñ ou Ñ .
~::
Input, key, L1, {delete}{esc}{backspace}
if(key=="n"){
Send {Asc 164}
}
else if(key=="N"){
Send {Asc 165}
}
else {
Send {Asc 126}%key%
}
return
A linha ~:: pega o ~ de pressionamento de tecla, em seguida, o comando input pega o próximo caractere 1 (L1) e o atribui à variável key . As chaves Delete , Esc e Backspace são listadas como chaves de escape, que retornarão apenas o original ~ que foi digitado. Caso contrário, se você digitar uma minúscula n , o script enviará o código ASCII para ñ ( Send {Asc 130} ) e digitar uma letra maiúscula N enviará o código ASCII para Ñ . Digitar qualquer outra coisa retorna o ~ e a próxima letra que você digitou (o comando final else envia o ASCII para ~ , seguido pelo conteúdo da variável key ).
Para os acentos que não estão no ASCII base, você precisa usar o Unicode da seguinte forma:
^::
Input, key, L1, {delete}{esc}{backspace}
if(key=="u"){
Send {Asc 150}
}
else if(key=="U"){
Send {U+00DB}
}
else {
Send {Asc 94}%key%
}
return
Observe a diferença no comando ao gravar a letra Û .
Você pode acoplar o máximo que precisar, usando os comandos if ... else if para tudo que usa o mesmo toque de tecla morta. Apenas certifique-se de incluir a instrução final else e o comando return no final antes de passar para a próxima chave inativa e conjunto de acentos. A desvantagem disso é que você precisa explicitamente soletrar todas as chaves e caracteres acentuados que deseja usar. Felizmente, todos eles seguem o mesmo padrão, tornando a configuração simples, talvez tediosa.
Mais informações sobre o comando AutoHotKey Send : link
Mais sobre o comando AutoHotKey Input : link
Tabela ASCII: link
Tabela Unicode: link