Windows 8: Adicionar umlauts alemão ao layout de teclado dos EUA (talvez usando o AutoHotKey)

4

Acabei de perceber que o Microsoft Keyboard Layout Creator não funciona mais No Windows 8. Eu usei-o com sucesso no Windows 7 para criar um layout de teclado personalizado em cima de um layout dos EUA, onde eu adicionei AltGr + a, AltGr + o, AltGr + u para os correspondentes ä, ö e ü. / p>

Agora quero fazer o mesmo no Windows 8, com a dificuldade adicional de o meu novo laptop não ter nenhuma chave AltGr, mas apenas as teclas ONE Crtl e ONE Alt e as combinações correspondentes com a, o e u são bonitas muito tomado. Então me perguntei se eu poderia usar AutoHotKey para criar teclas de atalho para Espaço + a, Espaço + oe Espaço + u. Isto é o quão longe eu cheguei:

~space & a::
Send ä

Esse script mapeará o Espaço + a para o trema correto, e o "e" comercial confirmará que você ainda pode usar a tecla de espaço quando não estiver usando essa tecla de atalho. No entanto, isso sempre irá inserir um espaço na frente do 'ä'. Além disso, uma rápida sucessão das chaves Space e a também produzirá um trema, quando eu realmente quis digitar 'a'.

Eu estou procurando uma solução que insira os caracteres únicos sem espaços quando a tecla de atalho correspondente é pressionada, e isso não tem nenhum efeito, ou seja, sucessivas (ao contrário de simultâneas) pressionando Space e {a, o , você não fará nada. Além disso, não deve mexer com teclas de atalho do sistema como o Windows + Space para alternar o idioma de entrada. Se isso puder ser feito sem AutoHotKey , terei todo o prazer em aceitar essa solução também.

    
por pederpansen 19.11.2013 / 02:29

4 respostas

4

Eu vejo que a outra resposta já foi selecionada, mas aqui está minha solução pessoal. Eu criei um número de hotstrings. por exemplo. " a fornecerá ä

:?C*:''a::à
:?C*:''i::ì
:?C*:''e::è
:?C*:''o::ò
:?C*:''u::ù
:?C*:''A::À
:?C*:''I::Ì
:?C*:''E::È
:?C*:''O::Ò
:?C*:''U::Ù

:?C*:^ :: ; Turn ^{Space} into neutral ^, else ^ will be used in next vowel.
    Send, {^}{Space}{BackSpace}
Return

:?C*:^a::â
:?C*:^i::î
:?C*:^e::ê
:?C*:^o::ô
:?C*:^u::û
:?C*:^A::Â
:?C*:^I::Î
:?C*:^E::Ê
:?C*:^O::Ô
:?C*:^U::Û


:?C*:'" :: ; Turn "{Space} into neutral ", else " will be used in next vowel.
    Send, +{'}{Space}{BackSpace}
Return

:?C*:'"a::ä
:?C*:'"i::ï
:?C*:'"e::ë
:?C*:'"o::ö
:?C*:'"u::ü
:?C*:'"A::Ä
:?C*:'"I::Ï
:?C*:'"E::Ë
:?C*:'"O::Ö
:?C*:'"U::Ü

:?C*:' :: ; Turn '{Space} into neutral ', else ' will be used in next vowel.
    Send, {'}{Space}{BackSpace}
Return

:?C*:''a::á
:?C*:''i::í
:?C*:''e::é
:?C*:''o::ó
:?C*:''u::ú
:?C*:''A::Á
:?C*:''I::Í
:?C*:''E::É
:?C*:''O::Ó
:?C*:''U::Ú

:?C*:''c::ç
:?C*:''C::Ç
:?C*:ss\::ß
:?C*:ae\::æ
:?C*:AE\::Æ
:?C*:oe\::œ
:?C*:OE\::Œ
    
por 18.07.2014 / 22:37
3

Inspirado no último post, descobri uma solução adicional, pois o acima, por vezes, causava problemas ao escrever.

  1. Eu primeiro remapeei CapsLock para RShift como eu sempre uso a tecla LShift para o capital de qualquer maneira
  2. Configurar o mapeamento

Rshift & a::
{
  GetKeyState, state, Lshift
  if state = D
    sendinput, Ä
  else
    sendinput, ä    
  return
}

Rshift & o::
{
  GetKeyState, state, Lshift
  if state = D
    sendinput, Ö
  else
    sendinput, ö    
  return
}

Rshift & u::
{
  GetKeyState, state, Lshift
  if state = D
    sendinput, Ü
  else
    sendinput, ü
  return
}

Rshift & s::
{
  sendinput, ß
  return
}

Rshift & e::
{
  sendinput, €
  return
}
    
por 19.10.2014 / 18:21
0

Parece estranho responder a minha própria pergunta, mas como ninguém mais teve uma ideia, eu mesmo descobri. O seguinte script AutoHotKey faz o truque:

#SingleInstance force

~space & a::
{
  GetKeyState, state, Shift
  if state = D
    sendinput, {backspace 1}Ä
  else
    sendinput, {backspace 1}ä

  return
}

~space & o::
{
  GetKeyState, state, Shift
  if state = D
    sendinput, {backspace 1}Ö
  else
    sendinput, {backspace 1}ö
  return
}

~space & u::
{
  GetKeyState, state, Shift
  if state = D
    sendinput, {backspace 1}Ü
  else
    sendinput, {backspace 1}ü
  return
}

~space & s::
{
  sendinput, {backspace 1}ß
  return
}

~space & e::
{
  sendinput, {backspace 1}€
  return
}

A parte crucial é usar a função backspace , que exclui o espaço quando um dos casos de atalho foi ativado. Além disso, verificar o estado da tecla Shift permite a inserção de caracteres com distinção entre maiúsculas e minúsculas. Por conveniência, eu também adicionei hotkeys para o alemão "sharp s" (que só existe em minúsculas) e o símbolo do Euro.

Por favor, certifique-se de iniciar este script no logon com direitos de administrador, seguindo as instruções muito legais aqui .

Com esse script, a tecla space funciona como antes e, apenas no caso de pressioná-la junto com uma das chaves a , o , u , s ou e , algo especial, que é a solução que eu estava procurando.

    
por 22.11.2013 / 10:38
0

Você também pode usar as teclas mais longas, mas padrão Alt + 132 = ä Alt + 137 (or 0235) = ë Alt + 139 (or 0239) = ï Alt + 148 (or 0246) = ö Alt + 129 (or 0252) = ü

    
por 18.07.2014 / 17:37