判断 Windows 中什么软件占用了全局热键。
有些软件莫名会其妙地占用了全局热键,例如企业微信某个版本,把它没用到的 Shift+Esc 以全局模式给占用了,导致在 IntelliJ 中没法用到这个热键,这个时候就需要排查谁占用了这个热键。
参考这个 SuperUser 回答,使用 Spy++ 可以找到占用该热键的进程。方法如下:
- 通过安装 VS 的 Community 版以获得 Spy++。Spy++ 在「开发活动」中的「Visual Studio C++ 核心功能」中
- Spy++ 分 64 位和 32 位版,文件名分别是
spyxx_amd64.exe
及spyxx.exe
,分别能捕获 64 位和 32 位程序的窗口事件。使用 Listary 定位之并打开 - 按 Ctrl+M 打开「消息选项」,「其他窗口」中勾选上「系统中的所有窗口」,「消息」Tab 中「全部消除」,再选上
WM_HOTKEY
。点击确定 - 按你想定位的快键(如 Shift+Esc),看「消息(所有窗口)」上有无内容出现,有的话定位到是哪个窗口和程序
Over。