Sunday, September 15, 2019

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


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


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.


No comments:

Post a Comment

hard drive - Leaving bad sectors in unformatted partition?

Laptop was acting really weird, and copy and seek times were really slow, so I decided to scan the hard drive surface. I have a couple hundr...