Override Windows Explorer Win Key Hotkeys

For years now I’ve been using an awesome clipboard manager utility by JoeJoe Soft called ArsClip. One of the nice features of the program is the ability to set a custom hotkey for the clipboard manager clip list. In my case, I like to use the Ctrl+Win+V combo to invoke this feature. This can be set in the ArsClip INI file with these variables set:

%USERPROFILE%\AppData\Roaming\Arsclip\arsclip.ini

Hotkey_Key=86
Hotkey_Alt=0
Hotkey_Shift=0
Hotkey_Ctrl=1
Hotkey_Winkey=1

There’s one problem though: Apparently Microsoft reserves the use of the Win key. If, as in my case, you start using Win+Something and it works for a while, a Windows 10 update could suddenly replace your cool clipboard functionality with something like, say, their own lame clipboard manager, or in my case, something completely useless and dumb like “Shoulder Taps“.

I suspect that there may be a clean way of having AutoHotKey take over these hotkeys and re-route them to ArsClip (or whatever application you want), however I couldn’t figure out how to make that happen.

There is a solution however. If you can start your app before the Explorer shell gets a chance to, then you effectively reserve those hotkeys for your app, and Explorer can’t use them. For a while, I’d do this by killing the explorer.exe process, run ArsClip, then re-start Explorer. Not ideal, but workable. I eventually came up with a better solution: Fire up ArsClip upon login, before Explorer starts, by using the Userinit registry key and a batch file to manage the timing. Here’s the batch file (C:\USERINIT.BAT):

@echo off
REM Start ArsClip and continue
start "" "C:\Program Files (x86)\ArsClip\ArsClip.exe"
REM Wait 2 seconds for ArsClip to start up and register hotkeys
timeout /t 2
REM Start the Explorer shell via UserInit.exe
%SystemRoot%\System32\Userinit.exe
exit

Save that to C:\USERINIT.BAT
Then make this Registry modification (or save this to a .reg file and run):

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon]
"Userinit"="C:\\USERINIT.BAT"

Now when you log off and back on, ArsClip will start before Explorer, and your Win+Ctrl+V hotkey will work! Dirty hack? Maybe. If you know a better solution (such as some AHK magic as mentioned above) I’d love to hear about it.

Note that this modification will apply to all users of your computer. If you needed it to apply to just yourself, you may need to wrap it in some batch file logic, like so (untested):

@echo off
if '%username%' == 'myusername' goto hotkeyapps
goto userinit

:hotkeyapps
start "" "C:\Program Files (x86)\ArsClip\ArsClip.exe"
timeout /t 2
goto userinit

:userinit
%SystemRoot%\System32\Userinit.exe
exit

Good luck!