I ran some tests and got some interesting and very telling results. I did the test in Windows ME (it was the earliest version of Windows I had a running copy of on hand at the time), and repeated it with XP and then 7. This is what I did, which you can repeat:
- Create a shortcut to the calculator on the desktop, name it
C and assign it an unused hotkey
- Test that the hotkey work
- Create a shortcut to Notepad in the
Links folder, name it
N, and assign it a different, unused hotkey
- Confirm that the hotkey does not work
- Delete the shortcut to the calculator from the desktop
- Move the shortcut to Notepad from the
Link folder to the desktop and rename it to
- Press hotkey that was assigned to the original shortcut to the calcuator
- Note that it runs Notepad
This occurs on Windows ME and XP, but in Windows 7, pressing the either hotkey did nothing at the end.
Internal Hotkey Format
From this, we can assume that when you assign a hotkey to a shortcut, it assigns it to the full path to the shortcut. For example, in the test above, setting the hotkey Alt+⇧Shift+C to the calculator shortcut would cause Windows to register something like this internally:
C A S W K P
- + + - C "C:\…\Foobar\Desktop\C.lnk"
Therefore, if you delete (or move or rename) the shortcut, pressing the key will try to run the shortcut that does not exist. Curiously, if you monitor file-access in Process Explorer, you will not see
FILE NOT FOUND errors trying to access the missing shortcut, but if you restore the shortcut, you will see it being accessed again when you press the hotkey.
Automatic Hotkey Managment
Also, that Windows 7 does not run the copied shortcut seems to indicate that Explorer does some sort of hotkey-management whenever shortcuts are moved, renamed, or deleted, but of course, there are limitations to what it can do. (For example, if two shortcuts share a hotkey, deleting the one that has the hotkey will not suddenly re-assign the hotkey to the other one, you need to manually open that shortcut’s Properties dialog and click
[OK] to do that.)
I then considered redirecting the
Links folder (figure 1). I tried redirecting it, then copying the moved folder back to the original location. I found that hotkeys did not work for shortcuts in either folder. I then tried stripping the attributes from from the folders and even deleting the
desktop.ini files from them under the assumption that Windows treats them specially, but that did not help. I then created a new, regular folder in the user-data folder and to my surprise, hotkeys still wouldn’t work.
Shortcut Hotkeys All Around the File-System
Next, I tried it with a shortcut on a different drive, and still nothing. I tried assigning hotkeys to shortcuts in several different locations in Windows 7, and only the shortcuts that were in the
Start Menu folders or one of their sub-directories could use hotkeys.
It seems that Explorer’s hotkey function for shortcuts is extremely limited and only works for the Start Menu and desktop. I don’t know if this is a bug or intended because I cannot find any mention of the limitation. Microsoft’s own page on the subject says nothing about it. (Let them know through the feedback form. I clicked
[No] and submitted a link to this page.) There’s no reason to believe that this is different in Windows 8 or 8.1 or possibly even future versions (assuming that they retain Explorer at all).
You could (attempt to) report it, but I wouldn’t hold out hope of it being fixed. It would be faster and easier to just store shortcuts that need hotkeys in another folder.
Figure 1: Links-location setting: