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。

Windows下的程序及热键监视神器——Spy++的更多相关文章

  1. windows下控制台程序实现窗口显示

    windows下实现窗口显示,如果限定是C/C++语言,并且是原生Windows支持,需要使用GDI或GDI+.一般是在Visual Studio里新建Win32应用程序,而不是Win32 conso ...

  2. Windows下MFC程序利用LockCop解决死锁

    死锁现象:在训练的时候,点击“终止”按钮时不时会发生死锁. 检测工具:LockCop.TRACE宏.::GetCurrentThreadID函数. 检测手段: 总结起来就是—— 第一步:用LockCo ...

  3. linux 和 windows下的程序计时

    Windows 使用<windows.h>中的GetTickCount(),该函数获得从操作系统启动到现在所经过(elapsed)的毫秒数,它的返回值是DWORD. 转自:http://w ...

  4. 【Qt5】Windows下配置程序的产品、公司、版权、版本号等详细信息

    在工程的pro文件中加入下面的配置 # 配置图标(仅Windows有效)# 本程序使用两个图标,这样其快捷方式可以有更多选择,也可以给关联文件提供图标选择RC_ICONS += icon1.ico \ ...

  5. windows下rabbitmq(架构师必备神器)集群搭建

    准备2台机器,例如:computera: 10.0.0.151   computerb:10.0.0.234  都安装erlang环境和rabbitmq服务,注意otp环境和rabbitmq服务必须版 ...

  6. Windows 下QT程序发布

    方法1:利用QT自带打包工具 1.新建文件夹,把编译好的exe文件放入该文件夹 2.使用QT下的命令行 3.进入该exe所在文件,执行windeployqt xxx.exe,若出现找不到命令的情况 4 ...

  7. Windows下安装程序时提示未安装Microsoft Net FrameWork 2.0

    问题描述 安装程序时碰到如下: 现在基本都是用win7.win10系统,缺少环境大多数都是因为系统没有启用. 解决方法 控制面板 - 程序 - 启用或关闭Windows功能 - 把第一项'NET Fr ...

  8. Windows下将程序打包为安装包(最为简易的方式)

    一.准备工作:先下载一个Inno Setup编译器,这里我用到的是5.3.3中文版的. 软件介绍: Inno Setup 是一个免费的安装制作软件,小巧.简便.精美是其最大特点,支持pascal脚本, ...

  9. Windows下禁用锁屏热键WinKey+L

    在注册表[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\System]中创建名字为DisableLockWo ...

随机推荐

  1. 2018.7.31-2018.8.2记:关于maven

    maven的使用,用得好,则省力省事,但是用不好则会造成一堆莫名其妙的错误,maven在使用的时候,jar包下载异常终止尤为需要注意,很容易就终止了,并且会出现一些下载出空jar包的情况,即:jar包 ...

  2. 通过refresh响应头,定时刷新或隔n秒跳转页面

    package day08; import java.io.IOException; import javax.servlet.ServletException; import javax.servl ...

  3. 理解Flink中的Task和SUBTASK

    1.概念 Task(任务):Task是一个阶段多个功能相同的subTask 的集合,类似于Spark中的TaskSet. subTask(子任务):subTask是Flink中任务最小执行单元,是一个 ...

  4. 灵魂画手:漫画图解 SSH

    OpenSSL 本身是一个软件库,这个软件被广泛的应用在系统服务器当中,他的主要功能是在网络通信的过程中,保证数据的一致性以及数据传输过程中的安全性.软件本身是由C语言编写,这使得他具备了跨平台的特性 ...

  5. MongoDB(1)- 入门介绍

    MongoDB 数据库 MongoDB 是一个文档数据库,旨在简化开发和扩展 MongoDB 中的记录是一个文档 Document,是由字段和值对组成的数据结构 MongoDB 文档类似于 JSON ...

  6. .Net性能调优-MemoryPool

    简单用法 //获取MemoryPool实例,实际返回了一个ArrayMemoryPool<T> MemoryPool<char> Pool = MemoryPool<ch ...

  7. Fastjson 1.2.22-24 反序列化漏洞分析(2)

    Fastjson 1.2.22-24 反序列化漏洞分析(2) 1.环境搭建 我们以ubuntu作为被攻击的服务器,本机电脑作为攻击者 本机地址:192.168.202.1 ubuntu地址:192.1 ...

  8. -bash: ulimit: core file size: cannot modify limit: Operation not permitted

    一.问题描述 使用普通用户执行某个软件加载环境变量时报错 -bash: ulimit: core file size: cannot modify limit: Operation not permi ...

  9. 苹果ASA广告投放归因的接入

    前段时间,苹果终于在大陆区开放了应用商店的竞价广告.毫无疑问又开启了苹果应用导量的新玩法,各大厂商都紧跟脚步吃螃蟹.本篇讲解苹果广告中的归因部分. 苹果广告其实在海外已运行多年,而因为IDFA的政策变 ...

  10. webgl 图像处理2---图像传输

    webgl 图像处理 webgl 不仅仅可以用来进行图形可视化, 它还能进行图像处理 图像处理2---图像传输 之前已经进行了点和 uv 数据的传输 webgl 进行图形处理的第二步: 传输图片到 G ...