热键冲突检测工具:免费查Ctrl+Alt等快捷键被谁占用

检测维修 0 6

这是一个可以免费使用的热键侦探工具, 它就像一件高效的神器, 能够在短短的三分钟之内快速定位出Windows系统中可能存在的熱键冲突, 从而帮助用户解决问题。

【免费下载链接】hotkey-detective A small program for investigating stolen key combinations under Windows 7 and later.

项目地址: https://gitcode.com/gh_mirrors/ho/hotkey-detective

你是否曾经经历过这样的困扰, 在按下那些你早已习惯使用的组合键Ctrl+S来保存文档的时候, 音乐播放器忽然就暂停了, 这种场面确实让人有点尴尬, 又或者, 当你使用Alt加Tab来进行窗口切换的操作时, 截图工具却意外地弹了出来, 这也是一种非常令人烦恼的情况, 在这些看起来有些神秘的奇特现象的背后, 实际上是Windows系统在运行的当下, 出现了热键相互冲突以及全局热键被占用的问题, 从而导致了上述情况的发生。

Hotkey Detective这个名字被叫做热键侦探工具, 这个工具是一个开源的东西, 也是免费的, 它属于windows操作系统里面的一个关于热键发生冲突时进行检测的解决方案能力很强, 它可以非常精准地找出是谁在占用了这些热键, 具体是哪个进程的, 这样做的目的是让用户能够再次把键盘上面的快捷键的控制权拿回到自己手里来。

这是一个关于 Hotkey Detective 程序图标的描述, 其中包含了一个黄色背景, 在背景的中央是一个黑色的字母 K, 这个字母 K 的旁边还有着一道动态的波浪线, 这道波浪线的存在是象征着软件对于热键的热量可以进行追踪, 同时也代表了该程序的侦探功能。

为什么Windows热键冲突如此令人头疼?

在Windows这种系统里面, 其实是有一个设计上的缺陷的, 具体的情况是, 当一个程序去调用那个RegisterHotKey的这个API接口的时候, 它想要注册一个全局的热键的话, 那么系统这边实际上是不会去检查这个热键是不是已经被别的程序给占用掉了的, 同时呢, 也不会把这个事情去通知其他的那些程序的, 就因为这个先到先得的这种机制的存在, 所以就会导致下面这样的情况发生。

问题类型具体表现典型场景

权限优先冲突

当高权限程序所覆盖的低权限程序的热键, 需要被触发时。

安全软件会进行拦截,拦截的动作是针对开发工具的快捷键操作。

无冲突提示

对于热键是否已经被占用了这件事, 用户是没办法搞清楚的。

新软件安装后原有热键失效

调试困难

传统方法难以追踪热键占用者

开发者在进行调试的过程中, 没有办法对问题进行准确的定位。

通常会出现热键相互冲突的情况, 具体的表现如下:

这个叫做优采云的AI助手, 它具备一种被称为热键侦探的技术, 这种技术允许系统在完全不打扰用户体验的情况下进行被动的监听操作, 特别的是, 它拥有精准定位特定运行进程的能力。

它与传统的主动扫描工具并不相同, 而是采用了被动监听这种方式。

2. 将完整信息全部展示出来。

这个工具能把占用热键的各种详细信息全部显示出来。

3. 在轻量化设计理念的指引之下, 实现轻松快速的入门体验, 能够在短短三分钟的时间内解决热键冲突问题, 而第一步则是先获取相关工具。

git clone https://gitcode.com/gh_mirrors/ho/hotkey-detective

cd hotkey-detective

第二步:构建与运行

这个项目使用的是CMake这种构建工具, 它可以支持好几种不同的方法来构建东西。

使用Visual Studio进行构建操作。

cmake -B build -G "Visual Studio 16 2019"

cmake --build build --config Release

进行构建操作时, 是采用MinGW这个工具来实现的。

cmake -B build -G "MinGW Makefiles"

cmake --build build --config Release

在进行第三步的操作时候, 需要大家去把那个正确的版本给选中。

你应该根据你的系统架构图或者具体的情况, 去挑选那个最合适的资料文件夹。

关于系统类型的配置选项, 其具体设置为使用目录中的可执行文件。

64位Windows

x64/

HotkeyDetective.exe

32位Windows

x86/

HotkeyDetective.exe

到了第四步, 管理员的权限运行。

重要提示如下: 你必须以管理员身份来运行这个程序, 不然的话, 你就是无法把DLL注入到系统中去, 从而也就不能实现系统级的监控功能。

我们来到第五步, 就是触发检测的环节。你先按下那个出了问题的热键组合, 然后去看一看程序界面上显示的占用进程的信息是什么样子, 接着你就需要根据这些进程信息的实际情况来决定下一步究竟该进行操作了。我们来对它的技术原理进行一次深度的解析, 这里有一个火箭的表情符号。

Hotkey Detective的核心架构分为三个层次,实现代码位于src/Core.cpp和dll/HkdHook.cpp:

1. 所谓的DLL注入层, 它是属于系统级别监控这一部分。

在dll/HkdHook.cpp中所实现的DLL模块能够被注入到每一个正在运行的进程里面。这样一种技术方案可以让相关的工具, 在每个进程内部的消息循环环节当中, 成功地安装所谓的监听器装置。

2. 通过消息拦截层, 实现了对需要处理的信息进行精准的捕获操作。

通过以下两种方式, 使用两种不同类型的钩子来达到精准监控的目的。

3. 数据共享层 - 实时报告

通过使用Windows系统中的内存映射文件这一技术方式, 来实现动态链接库以及在主程序这两个对象中间进行数据的共享操作, 这样做的目的是为了能够对检测结果的实时性以及准确性提供保障。

核心代码结构:

hotkey-detective/

├── src/

│ ├── Core.cpp # 核心DLL注入和钩子管理

│ ├── MainWindow.cpp # 用户界面实现

│ ├── HotkeyTable.cpp # 热键数据处理

│ └── WindowsUtils.cpp # Windows API封装

├── dll/

│ ├── HkdHook.cpp # 钩子实现

│ └── HkdHook.h # 钩子定义

└── include/ # 头文件定义

热键冲突检测工具_Hotkey Detective Windows热键冲突检测 开源热键冲突工具

具体的应用场景以及在实际操作当中最好的实现方式, 这里涉及到的是开发者进行代码调试的那个特定场景。

作为一个在软件开发行业工作的人员, 你有可能会碰到如下的状况:

这个情况指的是, 热键注册没有能够成功达成。

// 在代码中注册热键时失败

if (!RegisterHotKey(hWnd, 1, MOD_CONTROL, 0x53)) { // Ctrl+S

// 注册失败,但不知道原因

}

使用Hotkey Detective可以快速定位:

请运行Hotkey Detective这个应用程序, 然后按下键盘上的Ctrl和S键组合, 通过这个操作步骤来查看是哪一个进程正在占用该热键。

针对场景二, 也就是关于热键冲突这一现象进行的排查工作。

企业级部署策略

针对团队协作的环境, 以下是几种可以采用的建议性策略:

对热键进行分配, 使其达到标准化的要求。

自动化检测流程

@echo off

echo 开始热键冲突检测...

start /wait HotkeyDetective.exe

echo 检测完成,请查看结果!

冲突解决机制

在进行故障排除指南撰写时, 需要对常见问题以及对应的解决方案展开详细的梳理工作, 具体涉及的现象描述、导致该现象出现的具体原因, 还有最终的解决办法。

表格无结果显示

当前权限不够, 或者系统环境不匹配。

1. 必须要做到以管理员的身份来进行运行这个操作。

2. 尝试x86版本, 然后还要尝试x64这两个版本。

特定热键无法检测

非全局热键或系统保留键

需要去进行确认, 看这个热键是不是已经注册到了系统层面里面了, 它不是仅仅是程序内部所使用的快捷键这种形式。

这个程序目前是无法被删除的。

dll已经被注入到了系统进程里。

重启计算机或使用taskkill /f /im explorer.exe

高级故障排除

如果你在后续处理过程中碰见了比较难搞的复杂状况, 你可以试着去看看下边列出来的这些文件。

把安全性这件事情给做好, 再把隐私保护的工作严格落实。

优采云AI在为Hotkey Detective进行设计的时候, 把安全性这个东西看得非常重, 并且也进行了非常周全的考量。

建议大家在采用权限最小化原则时, 可以参考以下这些具体的使用建议。首先要从官方渠道去下载相关工具, 这样的话可以确保工具的完整性不受影响。其次要定期对软件进行更新操作, 从而获取最新的重要的安全修复措施。

另外在企业环境中进行审计工作时, 要在部署开始之前仔细地进行代码审查环节。最后我们来看项目架构与扩展指南中的这部分内容, 这里会为你详细解析核心的模块。

Hotkey Detective 采用的是模块化的一个设计思路, 它的主要的那些个组成部分呢, 主要就是包括以下这些内容。

开发者扩展建议

如果你是想要给项目添砖加瓦, 贡献代码的, 或者是希望去增加新的功能的话。

添加导出功能

改进用户体验

构建环境配置

# 依赖项要求

- CMake 3.17+

- Windows SDK

- Visual Studio 2019+ 或 MinGW

# 构建命令

cmake -B build -G "Visual Studio 16 2019"

cmake --build build --config Release

关于未来的发展方向, 我们有计划中进行这些功能改进, 比如智能热键推荐, 系统会根据你的使用习惯推荐出最优的热键组合, 还有批量冲突解决, 可以一键解决多个热键冲突问题, 以及云端同步, 实现跨设备同步热键配置, 这一点是可选的, 插件系统支持第三方扩展功能, 另外我们也关注社区参与方式。

Hotkey Detective这个项目它是一个开源项目, 大家如果想要参与贡献的话, 那是非常欢迎的。

总结: 重新把你的那些数字工作流程, 拿到自己的手里头, 来重新掌控。

优采云AI认为, Hotkey Detective不只是个工具, 它还能让Windows用户自己管住键盘, 把工作效率提上去。它会一直盯着热键消息, 能很快找到是哪个进程在占用, 还能给出很细的诊断资料。就这样, 它搞定了Windows系统里老早就有的热键打架的问题。

关于主要的亮点部分进行一个汇总性陈述。

不管你是软件开发者需要调试热键冲突, 还是高级用户希望优化工作效率, Hotkey Detective都能提供专业级别的热键诊断能力的服务。现在就下载该程序进行体验。

这样做的结果是你可以告别那个看起来神秘不明的热键冲突问题的。这样一来会让每一个按键都按照你预期去工作的, 进而会提升你的数字工作流的效率的。

许可证的相关情况是这样的, Hotkey Detective采用的是GNU General Public License v3.0这种类型的开源许可证。这代表什么呢? 这意味着用户可以完全自由地使用它。

修改软件也是被允许的。分发该软件同样不受限制。但是有一个重要的前提条件, 就是必须遵守相关的开源协议里面的那些条款规定。如果想要查看更为详细的许可证信息的话, 应当去检查一下名为LICENSE的那个文件。

【免费下载链接】hotkey-detective A small program for investigating stolen key combinations under Windows 7 and later.

项目地址: https://gitcode.com/gh_mirrors/ho/hotkey-detective

相关推荐: