Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

KeyMouseCaptureQt · 键鼠信号捕获器

A Windows desktop tool that globally captures keyboard & mouse signals, displays them in a floating window, and records the time interval from the previous signal with 0.001 s precision.

一款 Windows 桌面小工具:全局捕获电脑每一次键鼠信号,悬浮窗实时逐条显示,并记录与前一信号的时间差(精度 0.001 秒)——「操作时间列表」。

License Platform Qt Build Download

📦 直接使用:前往 Releases 下载 KeyMouseCaptureQt-win64.zip,解压双击 KeyMouseCaptureQt.exe(含全部 Qt DLL,无需安装环境)。

✨ 功能特性

  • 先配置、后启动:启动后进入可滑动设置页,配置完成后点击「▶ 启动捕获」;运行中按钮变为「■ 停止捕获」,随时停止 / 重启
  • 全局捕获:按键按下 / 抬起 / 长按重复,鼠标按下 / 抬起 / 滚轮 / 移动(Win32 低级钩子)
  • 逐条时间差:每条记录显示 时刻(HH:MM:SS.mmm) +0.004s 事件,基于 QueryPerformanceCounter,0.001s 精度
  • 悬浮窗:置顶、半透明、可拖动、鼠标穿透、慢信号橙色高亮、高度随「条数 × 行高」自适应、宽度适配最长行
  • 显示条数上限 20,超限自动删除最旧;透明度滑块 30%–100%(100% 时非分层窗口,兼容 RDP / 虚拟机)
  • 记录开关:按键抬起 / 长按重复 / 鼠标移动 / 鼠标抬起 均可独立开关
  • 忽略按键名单:预设 Shift / Ctrl / Alt / Win / CapsLock + 自定义键名 + 「+ 录制」按钮(按下任意键即加入名单)
  • 设置变更自动重启悬浮窗,已记录事件自动重放保留
  • 系统托盘驻留、开机自启动管理员模式(UAC 提权重启,可捕获提权窗口输入)
  • 配置持久化到 exe 同目录 KeyMouseCapture.ini(标准 [General] 格式);KMC_DUMP 环境变量支持调试转储
  • GUI 子系统构建,双击启动无终端黑窗;windeployqt 部署后可独立分发

📁 目录结构(模块化:高内聚、低耦合)

src/
  main.cpp            入口:QApplication + 管理员模式提权 + 装配
  AppConfig.h/.cpp    配置:手动 INI 读写 / 键名⇄VK 映射
  EventItem.h         事件数据结构(显示文本 + 时间差)
  InputCapture.h/.cpp 捕获核心:全局钩子 + 高精度计时 + 提权检测
  FloatWindow.h/.cpp  悬浮窗:相对布局 / 高度自适应 / 穿透 / 拖动 / 事件重放
  SettingsWindow.h/.cpp 设置页:滚动区 / 表单布局 / 预览 / 启动停止 / 托盘
  PreviewWidget.h/.cpp 悬浮窗迷你预览
CMakeLists.txt        构建(显式 AUTOMOC / WIN32_EXECUTABLE)
build_qt.bat          一键构建脚本(CMake + Ninja + windeployqt)
legacy-win32/         Win32 API 版本(单 exe 零依赖,功能对齐)

数据流:InputCapture::eventCaptured(EventItem) 信号 → FloatWindow::addEvent();配置经全局 g_cfg 共享,设置变化 → restartFloat() 重建悬浮窗并重放事件。

🔨 构建

本地构建(Windows + Qt 6.11 MinGW + CMake + Ninja,见 build_qt.bat

cmake -S . -B build -G Ninja -DCMAKE_BUILD_TYPE=Release -DCMAKE_PREFIX_PATH=C:\Qt\6.11.1\mingw_64
cmake --build build
windeployqt build\KeyMouseCaptureQt.exe

CI 自动构建(GitHub Actions)

.github/workflows/build.yml:push / PR 自动构建并上传制品;推送 v* 标签自动创建 Release(Qt 6.8 MSVC 2022 + Ninja + windeployqt)。

git tag v4.2.1 && git push origin v4.2.1   # 自动构建并发布 Release

🚀 使用

  1. 双击 build\KeyMouseCaptureQt.exe
  2. 设置页配置:记录项开关、显示条数(≤20)、透明度、字体、窗口尺寸、忽略按键等;
  3. 点击「▶ 启动捕获」→ 悬浮窗出现在右上角开始记录;运行中点击「■ 停止捕获」停止;
  4. 关闭设置页 → 程序驻留系统托盘;右键悬浮窗可打开设置 / 暂停 / 清空 / 退出。

📄 许可证

MIT © 2026 Janvias

⚠️ 说明

  • 低级别钩子无法捕获发送给更高权限(提权)窗口的输入;勾选设置页「以管理员身份运行」可解决
  • 本工具仅记录按键名 / 按钮状态与时间差,不记录、不传输任何输入内容

About

记录操作之间的时间差,数据化操作的流畅问题

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages