Windows 8: Agregue diéresis alemanas al diseño del teclado de EE. UU. (Tal vez usando AutoHotKey)

4

Me acabo de dar cuenta de que Microsoft Keyboard Layout Creator ya no funciona en Windows 8. Lo utilicé con éxito en Windows 7 para crear un diseño de teclado personalizado sobre un diseño de EE. UU., Donde además agregué AltGr + a, AltGr + o, AltGr + u para las diéresis correspondientes ä, ö y ü.

Ahora quiero hacer lo mismo en Windows 8, con la dificultad adicional de que mi nueva computadora portátil no tiene ninguna tecla AltGr, sino solo UNA tecla Crtl y UNA tecla Alt, y las combinaciones correspondientes con a, o y u están prácticamente tomadas. Entonces me pregunté si podría usar AutoHotKey para crear teclas de acceso rápido para Space + a, Space + o y Space + u. Así de lejos llegué:

~space & a::
Send ä

Este script asignará Space + a a la diéresis correcta, y el ampersand se asegurará de que aún pueda usar la tecla de espacio cuando no use esta tecla de acceso rápido. Sin embargo, esto siempre insertará un espacio delante de 'ä'. Además, una rápida sucesión de las teclas Space y a también producirá una diéresis, cuando en realidad quería escribir 'a'.

Estoy buscando una solución que inserte los caracteres individuales sin espacios cuando se presiona la tecla de acceso rápido correspondiente, y que no tiene ningún otro efecto, lo que significa presionar sucesivamente (en lugar de simultáneo) de Espacio y {a, o, u} No haré nada. Además, no debería interferir con las teclas de acceso rápido de todo el sistema como Windows + Space para cambiar el idioma de entrada. Si esto se puede hacer sin él AutoHotKey, felizmente aceptaré esa solución también.

Pederpansen
fuente
Supuse que Keyboard Layout Creator realmente funciona, pero deberá reiniciar para activar el nuevo diseño después de la instalación. Sin embargo, solo puede usar Ctrl, Shift y Alt como modificadores de teclas de acceso rápido, y me gusta la solución AutoHotKey usando la barra espaciadora mejor.
pederpansen

Respuestas:

4

Veo que la otra respuesta ya estaba seleccionada, pero aquí está mi solución personal. Creé una serie de hotstrings. por ejemplo "a, daráä

:?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\::Œ
Robert Ilbrink
fuente
Perdón por contestar tarde. Este es un gran guión, funciona muy bien. Debido a mi falta de reputación, ni siquiera puedo votarlo. ¡Gracias por compartir!
pederpansen
3

Inspirado en la última publicación, descubrí una solución adicional, ya que lo anterior a veces causaba problemas al escribir.

  1. La primera vez que remapped CapsLocka RShiftcomo yo siempre uso la LShiftclave para el capital de todas formas
  2. Configurar el mapeo

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
}
Daniel
fuente
También noté que usar el espacio como tecla de acceso rápido no es una buena idea en general. Mi propia respuesta a continuación solía funcionar durante algún tiempo, pero recientemente comenzó a fallar. Usar el desplazamiento a la derecha es una solución fácil y efectiva.
pederpansen
0

Me parece extraño responder a mi propia pregunta, pero como nadie más tenía una idea, lo descubrí yo mismo. El siguiente AutoHotKeyscript hace el truco:

#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
}

La parte crucial es usar la backspacefunción, que elimina el espacio cuando se activó una de las teclas de acceso rápido. Además, la comprobación del estado de la tecla Mayús permite la inserción de caracteres entre mayúsculas y minúsculas. Para mayor comodidad, también agregué teclas de acceso rápido para la "s" aguda alemana (que solo existe en minúsculas) y el símbolo del euro.

Asegúrese de iniciar este script al iniciar sesión con derechos de administrador, siguiendo las muy buenas instrucciones aquí .

Con este script, las funciones de las teclas de espacio como antes, y sólo en el caso de presionándolo junto con una de las teclas a, o, u, so e, lo hace algo especial, que es la solución que estaba buscando.

Pederpansen
fuente
0

También puede usar las teclas un poco más largas pero estándar Alt + 132 = ä Alt + 137 (or 0235) = ë Alt + 139 (or 0239) = ï Alt + 148 (or 0246) = ö Alt + 129 (or 0252) = ü

Jürgen Brandstetter
fuente