Windows下的程序及熱鍵監視神器——Spy++
背景
在使用Windows的時候,偶爾會發現某些應用程序的熱鍵不生效了;又或是桌面彈出了彈框卻並不知道這個彈框來自何處。例如,本人最近使用Vim的時候,發現創建分屏后,無法使用ctrl+w
快捷鍵完成切屏操作,一開始以為是Vim配置出現了問題,后來發現就連Edge瀏覽器的ctrl+w
關閉頁面都無法完成,仔細一想才覺得是熱鍵被占用了,這時候就要祭出Windows下一款簡單的神器Spy++。
如何獲取Spy++
Visual Studio
如果你下載過VS2019(其他版本應該同理),那么你可以在VS的安裝目錄/Common7/Tools/
中找到一個名叫spyxx.exe
以及spyxx_amd64.exe
,如果你的機器是64位版本最好使用后者(PS:spyxx中的xx即為倒着的加號++)。
Spy++ 幫助 - Visual Studio | Microsoft Docs
GitHub
當然,如果你沒有安裝VS或是其他版本的VS沒有spy++,已經有熱心開發者把不同版本的spy++上傳到了倉庫。
GitHub - westoncampbell/SpyPlusPlus: Microsoft Spy++
你只需要clone倉庫下載即可。
本人提供度盤
如果你是一位普通的Windows使用者,對上面的方式都不怎么會,本人已經將VS2019中的spy++傳到了度盤,下載即可使用。
鏈接:https://pan.baidu.com/s/1CwLPltBelCJVtbyFQObA0w
提取碼:cdn7
如何使用Spy++
熱鍵占用檢測
Spy++能夠對當前的熱鍵占用進行檢測並給出占用該熱鍵的應用程序。具體做法如下:
1、打開Spy++,選擇日志消息(log message)
2、選擇All Windows in System
這一步的目的是保證攔截到當前Windows系統中的所有窗體的有關消息
3、進入message頁簽,篩選熱鍵消息
4、保存配置后,會看到界面有一個空白窗口,然后按下快捷鍵,會發現窗口中會出現對應的熱鍵消息
本例中,本人使用了alt+space
快捷鍵呼出了uTools(另一款本人特別喜歡的工具)。通過Spy++監聽到了快捷鍵的按下。我們可以右鍵該條消息,查看Properties檢查該熱鍵是由哪個程序捕獲的:
窗體所屬程序檢測
除了上述Spy++能夠監聽Windows下的事件消息外,它還能獲取Windows下任意窗口的句柄信息,進而獲取到該窗口所屬的應用程序。
1、Spy菜單中選擇Find Window
2、拖動FinderTool到你想要識別的窗口上,松開它。剩下的請看下面的gif。
、