Windows – How to disable only some Windows 10 global shortuts to use them in third-party applications

autohotkeykeyboard shortcutssublime-text-3windowswindows 10

1. Briefly

I want to disable only some Windows 10 default global hotkeys, to use this hotkeys for run Sublime Text commands.



2. Detail

I have Windows 32-bit 10.0.14393. In Windows 10 we have many native hotkeys.

1. I want to disable

For example, I want to disable custom hotkeys, Win+K, Win+H and Ctrl+Win+P.

2. I don't want to disable

But, for example, I don't want to disable Win+D and Win+R hotkeys. I often use these hotkeys.

3. Sublime Text keymap part

{
    "keys": ["super+k"],
    "command": "paste"
},


3. Did not help

1. AutoHotkey Override

My code:

#k::return

Win+K global hotkey is disabled for me, but my Sublime Text command paste doesn't run too.

2. AutoHotkey overwrite global Windows hotkeys to hotkey of application

My code:

#IfWinActive ahk_class PX_WINDOW_CLASS
$#2::ControlSend, ahk_parent, % SubStr(A_ThisHotkey, 2)
#IfWinActive

It is worked for me, but I have bugs, for example:

AutoHotkey bug

For other hotkeys I have bugs too. It would be nice if someone will improve this code.

3. SharpKeys

SharpKeys program can disable or reassign Win key, but I don't want this.

4. gpedit.msc

I can disable some default hotkeys, but:

  • I can not disable (using gpedit.msc), for example, Win+K, Win+H and Ctrl+Win+P.
  • I can disable Win+D and Win+R, but I want to use this hotkeys.

5. Simple disable key

I download Simple disable key → I disable Win+K in program → I restart Windows → Win+K is not disabled for me.

6. DisabledHotkeys parameter in Windows Registry

[HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced]

I create string parameter DisableHotkeys with value KHPE.

DisabledHotkeys

Win+E, for example, is disabled for me, but

  • Win+P, Win+K and Win+H are not disabled.
  • This method is not for disabling, for example, Ctrl+Win+P and Ctrl+Win+F4.


4. Do not offer

Best Answer

  • You could use Autohotkey for remap any hotkey to send another hotkey using Send command:

    #k::
    Send {WIN up}
    Send {k up}
    Send ^+p
    return
    

    After this pressing Win+K will send a Ctrl+Shift+P which will show Command Palette in Sublime Text, you can use this way to override any hotkey to send another hotkey, set it to something like Ctrl+Shift+F3 and assign that hotkey to Sublime Text's paste(in keybindings) and then use Win+K to send that Ctrl+Shift+F3 to Sublime Text which will call paste.

    AutoHotkey script:

    #k::
    Send {WIN up}
    Send {K up}
    Send !^+{F3}
    return
    

    Sublime Text keybindings:

    { "keys": ["ctrl+alt+shift+f3"], "command": "paste" }
    

    Edit:

    Seen your Please, don't offer AutoHotkey shortcuts redirect to other shortcuts. why not? Above example works even for Win+R:

    #r::
    Send {WIN up}
    Send {r up}
    Send !^+{F3}
    return
    

    Text successfully pasted through Win+R in Sublime Text.

    Edit 2:

    If you really like to assign real hotkeys you could disable all Win+{KEY} hotkeys, and then create your hotkeys which will do same as default Win+{Key} hotkeys, and for another hotkeys assign your own actions.

    For example for Win+R:

    explorer.exe Shell:::{2559a1f3-21d7-11d4-bdaf-00c04f60b9f0}
    

    Works, but for some hotkey its hard to find how to call their actions.