Assigning keyboard shortcuts is very popular for automating tasks. AutoHotKey even makes it a one-liner.
When choosing hotkey combinations, we always need to be careful not to destroy shortcuts of any existing applications, especially if they can be assigned using the mechanisms of Winforms or WPF.
So the most safe key is probably the Windows key. However, Microsoft writes in the documentation of RegisterHotKey():
MOD_WIN 0x0008
Either WINDOWS key was held down. These keys are labeled with the Windows logo. Keyboard shortcuts that involve the WINDOWS key are reserved for use by the operating system.
And it's true that Microsoft adds more and more Windows-key-combinations to the operating system itself, as we have
E - Explorer
L - Lock screen
P - Presentation
M - Minimize
D - Desktop
R - Run
Tab - Switch
and probably others which I don't even use. Until now I haven't seen a Windows shortcut which uses additional modifiers such as Shift, Ctrl or Alt.
As I don't want to override existing shortcuts which users might already be familiar with, I have the following questions:
a) Is there a way to programmatically find out which Windows-shortcuts are defined by the OS? And I mean Windows only here. Not shortcuts which are in use e.g. by OneNote (I especially don't like those) or AutoHotKey.
b) Is there any official Microsoft statement that they will try not to use modifier-Windows-shortcuts in the future?