0

i have a Hotkeyscript for german umlaute. This Script has been working for years, since this morning it doesn't. i use ALt and ALT SHIFT combinations with several letters and now the windows shortcuts like opening setting with ALT + u override my Script. I use Win 11 last update was on 14.08.25. I didn't install anything new in the last few days.

This is the Script:

; Alt-a = ä, Shift+Alt-a = Ä
!a::Send "ä"
+!a::Send "Ä"

; Alt-o = ö, Shift+Alt-o = Ö
!o::Send "ö"
+!o::Send "Ö"

; Alt-u = ü, Shift+Alt-u = Ü
!u::Send "ü"
+!u::Send "Ü"

; Alt-e-= = €
!e::Send "€"

; Alt-s = ß, Shift+Alt-s = ẞ
!s::Send "ß"
+!s::Send "ẞ"

I tried the obvious restart the Script, restart my computer. I also tried $ infront of the ! and + at the beginning of the lines and ChatGPT recommended #UseHook at the top the Script but those didn't work independently nor together. I also checked that i use the newest AutoHotkey version which i do. if i can help it i don't want to deactivate all the letters i use for shortcuts, i think there is a way doing this in the registry but not quit sure how and i don't want to nerf all combinations with a o u e and s. Any help or Ideas would be helpful =)

3
  • Alternative would be this tool in PowerToys learn.microsoft.com/en-us/windows/powertoys/keyboard-manager Commented Aug 18 at 8:43
  • I just set my default keyboard to the US-International keyboard, which converts some of the punctuation keys to "dead keys" for diacritics. This allows me to type "a to get ä, "o for ö, and so on. This layout also allows direct access to ß directly using AltGr+s [or Ctrl+Alt+s] (although the uppercase still requires an AHK script) Commented Aug 18 at 11:11
  • One place I found "documentation" for using the US-International keyboard is web.cortland.edu/ponterior/keyboard Commented Aug 18 at 11:21

2 Answers 2

0

A little late to the party, but I have this AHK v1.1 German Umlaut script...

;;∙------∙Double-tap ALT to activate Umlaut mode for the next character.

#NoEnv
#SingleInstance Force
#Persistent

AltTapCount := 0
UmlautMode := false
SetTimer, ResetAltTap, 750

;;∙------∙🔥∙Detect ALT key presses.
LAlt::
RAlt::
    AltTapCount++
    
    ;;∙------∙If double-tapped within time limit.
    if (AltTapCount = 2) {
        UmlautMode := true
        AltTapCount := 0

        ToolTip, Umlaut Mode Active - Press a/o/u/s for umlauts
        SetTimer, HideToolTip, 3000

        Hotkey, a, UmlautA, On
        Hotkey, o, UmlautO, On
        Hotkey, u, UmlautU, On
        Hotkey, s, UmlautS, On
        Hotkey, +a, UmlautShiftA, On
        Hotkey, +o, UmlautShiftO, On
        Hotkey, +u, UmlautShiftU, On

        SetTimer, AutoCancelUmlaut, 5000
        SoundPlay, *48
    }
Return

ResetAltTap:
    if (AltTapCount > 0) {
        AltTapCount--
    }
Return

HideToolTip:
    ToolTip
    SetTimer, HideToolTip, Off
Return

AutoCancelUmlaut:
    if (UmlautMode) {
        DisableUmlautMode()
    }
Return

DisableUmlautMode() {
    global UmlautMode
    UmlautMode := false
    ToolTip

    Hotkey, a, UmlautA, Off
    Hotkey, o, UmlautO, Off
    Hotkey, u, UmlautU, Off
    Hotkey, s, UmlautS, Off
    Hotkey, +a, UmlautShiftA, Off
    Hotkey, +o, UmlautShiftO, Off
    Hotkey, +u, UmlautShiftU, Off

    SetTimer, AutoCancelUmlaut, Off
    SetTimer, HideToolTip, Off
}


UmlautA:
    SendRaw, ä
    DisableUmlautMode()
Return

UmlautO:
    SendRaw, ö
    DisableUmlautMode()
Return

UmlautU:
    SendRaw, ü
    DisableUmlautMode()
Return

UmlautS:
    SendRaw, ß
    DisableUmlautMode()
Return

UmlautShiftA:
    SendRaw, Ä
    DisableUmlautMode()
Return

UmlautShiftO:
    SendRaw, Ö
    DisableUmlautMode()
Return

UmlautShiftU:
    SendRaw, Ü
    DisableUmlautMode()
Return


Hotkey, a, UmlautA, Off
Hotkey, o, UmlautO, Off
Hotkey, u, UmlautU, Off
Hotkey, s, UmlautS, Off
Hotkey, +a, UmlautShiftA, Off
Hotkey, +o, UmlautShiftO, Off
Hotkey, +u, UmlautShiftU, Off


Esc::    ;;∙------∙🔥∙(ESC) Exit Umlaut Mode.
    if (UmlautMode) {
        DisableUmlautMode()
    } else {
        Send, {Esc}
    }
Return


^!h::    ;;∙------∙🔥∙(Ctrl + Alt + H)
    MsgBox, 0, German Umlaut Help, 
    (
    German Umlaut Script Help:
    
    1. Double-tap ALT (left or right) to activate Umlaut mode
    2. Press the corresponding key:
       • a → ä
       • o → ö  
       • u → ü
       • s → ß
       • Shift+a → Ä
       • Shift+o → Ö
       • Shift+u → Ü
    
    • Press ESC to cancel Umlaut mode
    • Mode auto-cancels after 5 seconds
    • Ctrl+Alt+H shows this help
    • Ctrl+Alt+Q exits script
    
    The script shows a tooltip when Umlaut mode is active.
    )
Return
Sign up to request clarification or add additional context in comments.

Comments

0

I tried your script (just Alt-u) and had the problem as well.

I usually tend to avoid hotkeys that are just Alt-<letter> because they are often used by so many apps.

So my suggestion is to try a slight change to you HK by adding Ctrl to it.

; Ctrl-Alt-u = ü, Ctrl-Shift+Alt-u = Ü
^!u::Send "ü"       ; test: "ü" ; 
+^!u::Send "Ü"      ; test: "Ü"

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.