获取系统的热键列表
Windows本身并没有提供获取所有注册热键的功能,我们要获取的话,只有靠枚举扫描的方式来实现,也就是说把所有的热键组合扫描一遍,看是否可以注册,如果可以注册,那么说明该热键组合没有被使用,如果不能注册,说明该热键已经被注册,就这么简单。
可以参考HotKeyManager的源代码,其中就有列出所有热键的代码:
GetCombination(MOD_WIN);
GetCombination(MOD_WIN + MOD_SHIFT);
GetCombination(MOD_WIN + MOD_CONTROL);
GetCombination(MOD_WIN + MOD_ALT);
GetCombination(MOD_WIN + MOD_SHIFT + MOD_CONTROL);
GetCombination(MOD_WIN + MOD_SHIFT + MOD_ALT);
GetCombination(MOD_WIN + MOD_CONTROL + MOD_ALT);
GetCombination(MOD_WIN + MOD_SHIFT + MOD_CONTROL + MOD_ALT);
GetCombination(MOD_SHIFT);
GetCombination(MOD_SHIFT + MOD_CONTROL);
GetCombination(MOD_SHIFT + MOD_ALT);
GetCombination(MOD_SHIFT + MOD_CONTROL + MOD_ALT);
GetCombination(MOD_CONTROL);
GetCombination(MOD_CONTROL + MOD_ALT);
GetCombination(MOD_ALT);
GetCombination(0);