Skip to content

freshman515/DetectShortcutKeys

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 

Repository files navigation

DetectShortcutkeys

Windows 快捷键归属检测工具,用来判断一个快捷键更可能属于哪个程序。

技术栈

  • C# / .NET 8
  • WPF 桌面 UI
  • Win32 API P/Invoke:全局键盘钩子、前台窗口识别、RegisterHotKey 探测
  • ShellLink COM:扫描开始菜单和桌面 .lnk 中配置的 Windows 快捷键

这个项目是 Windows 专用工具,核心能力依赖 Windows 窗口、键盘和 Shell API。相比 Electron、Web 或跨平台 UI,WPF + .NET 的部署体积、系统 API 调用成本和调试体验更适合这个场景。

检测策略

Windows 不提供公开 API 来枚举所有 RegisterHotKey 注册项及其 owner,也不能可靠判断低级键盘钩子由哪个进程处理。因此本工具采用分层判断:

  1. 精确扫描桌面和开始菜单 .lnk 文件中的 Hotkey 配置。
  2. 捕获快捷键按下前的前台窗口进程。
  3. 延迟读取按下后的前台窗口进程,用焦点变化推断目标程序。
  4. 尝试临时注册同一快捷键,判断是否存在系统级注册冲突。

结果会标明是“精确匹配”还是“推断/未知 owner”。

运行

dotnet run --project src\DetectShortcutkeys.App\DetectShortcutkeys.App.csproj

构建

dotnet build DetectShortcutkeys.sln

About

windows平台检测按键所属的一款程序

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages