疯键狂鼠 v1.4.0

统计你每天敲了多少次键盘、点了多少次鼠标、滚了多少格滚轮、鼠标走了多远。 所有数据只存在这台电脑上,不联网、不上传、不记录你输入了什么。

纯本地 · 不联网 不记录按键内容 不装驱动 不需要管理员权限 Windows 10 / 11 x64
程序版本
1.4.0 / 2026-10-29
安装包版本
1.2.0 / 28 MB
系统要求
Win 10 或 11 / 64 位
存储
SQLite / 单文件

它能做什么

不是玩具式的计数器。键盘和鼠标分开建表、分开统计、分开重置, 因为这两类设备值得看的指标本来就不一样。

键盘按键

总次数、今日、按日趋势、每个按键的排名。精确到「空格键按了 376 次」这种粒度。

鼠标点击

左键、右键、中键、侧键、拇指键分开记。罗技侧键会自动还原成鼠标事件,不会混进键盘统计。

滚轮格数

中键滚轮和侧滚轮(拇指轮、左右倾)分开统计。大数字是两者之和,下面一行分列。

鼠标行程

取 Raw Input 原始计数,不受系统「指针速度」「提高指针精确度」缩放影响,再按真实 DPI 换算成米。

打字速度

当前速度(次/分),带 90 分钟逐分钟柱状;另有历史峰值和「有效均值」——空分钟不计入,不会被挂机拉低。

输入手感与故障

平均按住时长、平均按键间隔。同一个键 35 毫秒内「松开又按下」累计 2 次以上,会点名提示疑似双击故障。

为什么键盘鼠标要分两张表? 键盘看的是按键次数和手感,鼠标看的是点击、滚轮和位移。 硬塞进同一张表,一半格子必定是空的。

工作原理

用 Windows 系统自带的输入监听接口,只做计数,不拦截、不修改、不记录内容。 没有驱动、没有服务、没有后台网络请求。

01 采集

低级钩子

WH_KEYBOARD_LL / WH_MOUSE_LL 全局监听,按键事件到达系统后拷贝一份计数,原样放行。

02 位移

Raw Input

鼠标位移走 Raw Input 通道,拿的是鼠标自己上报的原始计数,不经过系统加速曲线。

03 认设备

四档型号

HID 描述符 → USB 父设备名 → 罗技 HID++ → 注册表兜底,逐级降级,只读不写。

04 落盘

SQLite

按小时聚合后写入单文件数据库。每轮写完即释放句柄,运行时也能复制备份。

型号是怎么认出来的

优先级来源典型结果
1 · 最准HID 描述符(设备固件里的产品名)Akko Keyboard
2USB 父设备名(设备被独占时用)USB Composite Device
3罗技 HID++ 协议,直接问接收器MX Master 3(经接收器)
4 · 兜底注册表设备名符合 HID 标准的鼠标

前两档拿不到才降级。所以罗技无线鼠标会显示成真名,而不是「USB Receiver」。 问到的型号会缓存在数据目录的 logi_names.json 里, 接收器休眠或刚开机时直接读缓存,名字不会一会儿变一个。

安装

只需要一个文件:疯键狂鼠-setup.exe(28 MB)。运行库、Qt 全打在里面,目标电脑不用装 Python。

项目要求
操作系统Windows 10 / Windows 11,64 位(32 位装不上)
管理员权限不需要
Python / 运行库不需要
安装位置%LOCALAPPDATA%\Programs\疯键狂鼠
磁盘占用约 100 MB
联网完全不联网

三步装完

1 · 运行安装包

双击 疯键狂鼠-setup.exe,一路下一步。

2 · 勾两个选项

「创建桌面快捷方式」和「开机自动启动」。后者建议勾上,装完就一直在后台统计。

3 · 打开即用

从桌面或开始菜单启动,第一次运行会自动开始采集,不需要任何配置。

两个可能会遇到的提示
· SmartScreen 蓝屏警告:安装包没有代码签名证书,点「更多信息 → 仍要运行」。
· 杀软报「键盘记录」:低级钩子是合法输入监听接口,输入法、剪贴板工具都在用。本程序只计数,不写内容、不联网。

卸载

开始菜单 →「疯键狂鼠」→「卸载疯键狂鼠」,或系统设置里卸载。 会自动停掉后台采集、清掉开机自启项。 卸载不删除统计数据,重装后接着算。要彻底清干净,手动删掉 %LOCALAPPDATA%\keymouse-stat 文件夹。

界面导览

程序由两部分组成:托盘图标常驻右下角,控制面板按需打开。关窗口不等于退出。

托盘右键菜单

菜单项作用
今日摘要菜单顶部直接显示今天多少次键、多少次点击,不用打开窗口
打开仪表盘唤出控制面板
显示报告 ▸五个区间(今日 / 本周 / 本月 / 本年 / 全部)。生成临时报告在浏览器打开,关掉浏览器后文件自动删除
保存报告 ▸同样五个区间,让你选位置存成 HTML,一直保留
后台采集状态显示当前是「采集中」还是已停止;未运行时下面会出现「启动后台采集」
退出程序(后台继续统计)关掉界面和托盘图标,采集进程继续跑,数字不断档
全部退出(停止统计)连采集一起停,彻底不占资源、不再计数

控制面板

仪表盘

顶部五个区间按钮,下面是 KPI 卡片、打字速度卡片、当前设备卡片、键盘/鼠标按键排名,以及「按小时」的活动图。

设置 ▾ 菜单

重启后台采集、开机自启开关、打开数据目录、设备备注名、鼠标 DPI、报告存放位置、键盘/鼠标分段重置、彻底清空、键鼠更换记录、使用说明、关于。

「重启后台采集」什么时候用? 数字不涨、型号读不到、插拔设备后没反应——先点这个。 它会先把采集进程正常收尾落盘,再重新拉起,绝大多数情况一次就好。

退出方式有三档

选择界面托盘图标后台采集
收进托盘收起保留继续
退出程序关闭关闭继续
全部退出关闭关闭停止

「退出程序」之后后台仍在统计,这是故意的。否则一天里关几次窗口,数据就断成几段。 想让软件彻底不占资源,用「全部退出」。

怎么读报告

报告是单文件 HTML,双击就能在任何浏览器打开,不需要联网,可以直接发给别人。

上半部分:四栏统计

栏目内容
全部数据汇总只有一行全量合计,不区分键盘鼠标,也不列型号
键盘按型号统计每把键盘一项,只列键盘指标:活跃天数、键盘按键数
鼠标按型号统计每只鼠标一项:活跃天数、点击、滚轮格数、行程
旧数据(1.3.2 之前)那版没记录型号,混在一起没法拆,单独列一栏

每款型号从第一次用算到被换掉为止。同型号换回来(比如带到公司再带回家)会接着累计。 换了新型号自动多出一项,旧的那项原样留着。

下半部分:按键明细表

两张表 ——「按键明细」和「鼠标按键明细」。一行一个键,九列:

列含义
按键 / 次数 / 占比这个键按了多少次,占全部按键的百分比
日均按活跃天数平均,不是按自然日
平均间隔同一个键相邻两次按下隔了多久 —— 打字快慢看这个
按住时长按下到抬起的平均毫秒数,反映轴体手感
首次 / 最近这个键第一次和最近一次被按下的日期
分布设备这个键在每台键盘 / 鼠标上各按了多少次

默认只列前 30 个键,表格下方有「展开全部」;点表头可按那一列排序,再点一次反向。 更快的看法是点热力图上的键 —— 旁边直接弹出这个键的详情小卡片,不用往下翻。 明细表和浮层用同一份数据,不会出现两处数字对不上。

页脚有版本号。 标题旁有绿色版本徽章,页脚写着程序版本、构建日期和报告生成时间。 两个日期不一样:构建日期指这个 exe 哪天打包的,生成时间指这份报告哪天生成的。 转发给别人时,凭这两个日期就能判断是不是最新版。

重置、备份、迁移

重置分两种,别搞混

分段重置(保留总数)

设置 →「重置键盘统计」或「重置鼠标统计」。只动自己那一类,另一类完全不受影响。 数据不会删,型号下面会缩进多出一行「第 N 段(原因)」,型号总数仍然包含每一段。 适合换轴体、换微动之后单独看一段。

彻底清空(不可恢复)

设置 →「彻底清空全部数据」。所有统计连同分段记录一起删掉,回到初始状态。 清空前会要你确认,删了找不回来。

分段可以只挑一个型号,也可以选「全部键盘 / 全部鼠标」一起开新一段。 键盘和鼠标的入口分开,是为了让你换微动的时候不会把键盘的数据也切一刀。

换键盘鼠标不会自动清零。 每台设备各记各的,换回来还能接上。只有在「旧的同类设备确实不在了、又插上同类新设备」时才另起一项, 接收器多冒一个空接口、临时拔根线、插第二只鼠标都不会清数据。

备份与换电脑

# 备份:整个 data 文件夹复制走即可
%LOCALAPPDATA%\keymouse-stat\data\

# 只搬历史数据:这三个文件一起拷(少一个可能丢最近几分钟的数据)
stats.db   stats.db-wal   stats.db-shm

采集进程每轮写完就把文件句柄还回去,所以程序正在运行也能直接复制、移动、删除这个库, 不会卡在「文件正在使用」。想清空就删掉 stats.db,下次写入会自动重建一个空库。

换到新电脑:先装新版并启动一次(让它建好目录),再退出,然后把旧机器的 keymouse-stat 文件夹整个覆盖过去,重新打开即可接上历史数据。

命令行

需要看终端输出、写脚本或排查问题时用 疯键狂鼠cli.exe。日常使用完全不需要它。

命令作用
doctor环境自检。换机器后先跑这个,看钩子、设备、数据库是否正常
watch终端实时统计,Ctrl+C 结束
today查看最近统计,不进图形界面
devices列出识别到的键鼠型号
report --period month生成并保存月度 HTML 报告(today/week/month/year/all)
report --preview只预览,不落盘
reset --list列出有数据的型号和段号
reset --keyboard --reason 换了轴体键盘分段重置
reset --mouse --device "MX Master 3"只重置某一只鼠标
probe --secs 30按键诊断:逐条打印钩子收到的原始事件,用来查侧键 / 顶部按钮为什么没统计
export导出 CSV
about版本、运行环境、数据位置
install-service / uninstall-service注册 / 移除开机自启
# 常用:先自检,再看实时,最后出一份月报
疯键狂鼠cli.exe doctor
疯键狂鼠cli.exe watch
疯键狂鼠cli.exe report --period month

数据在哪、隐私怎么保证

路径内容
%LOCALAPPDATA%\keymouse-stat\data\stats.dbSQLite 数据库,全部统计都在这里
%LOCALAPPDATA%\keymouse-stat\统计报告\「保存报告」存下的 HTML
%TEMP%\疯键狂鼠-预览\「显示报告」的临时文件,关掉浏览器自动清除

只存聚合值,不存按键序列

按键次数、按住时长、按键间隔,都只保存「每小时每键的合计 / 均值 / 分布桶」, 不保存每一下按键的具体时间点。 因为「时间戳 + 键名」这种逐键序列在统计上足以还原出你打了什么字(击键动力学侧信道), 这种数据不该留在磁盘上。程序从设计上就不产生它。

全部程序代码不包含任何网络请求。想验证的话,断网运行一整天,功能和数据完全不受影响。

常见问题

杀毒软件报「键盘记录器」,正常吗?

正常。低级钩子是 Windows 官方的输入监听接口,输入法、剪贴板工具、截图工具都在用。部分杀软按 API 调用做启发式判断,一律标红。

本程序的行为可以核对:只做计数、不写按键内容、不联网、不发任何网络请求。不放心可以断网跑一天,功能和数据完全不受影响。

锁屏或 UAC 弹窗时按键没有统计?

Windows 安全机制。锁屏界面和提权桌面属于独立会话,低级钩子拿不到那里的输入事件。这部分不计数,属正常现象,不是 bug。

数字不涨 / 型号读不到,怎么处理?

先点设置 →「重启后台采集」。它会把采集进程正常收尾落盘再重新拉起。

还不行就跑 疯键狂鼠cli.exe doctor,看钩子和设备两节是否正常。型号读不到多半是无线接收器休眠或设备被独占,插拔一次接收器通常就好。

托盘图标不见了?

从开始菜单或桌面再启动一次即可。如果后台采集也没在跑,控制面板里的「启动采集」按钮会把它拉起来。

注意点了「全部退出」之后图标会消失、统计也停,这是预期行为。

型号显示成「符合 HID 标准的鼠标」?

说明前三个来源都没拿到型号,退化到注册表兜底了。常见于廉价无线鼠标和白牌 USB 接收器。

这不影响统计,只是名字不好看。用设置 →「设备备注名」给它起个名,界面和报告会优先显示你起的名字。

罗技鼠标的顶部按钮按了没反应?

那个按钮默认什么事件都不发,连 Windows 都收不到,任何软件都采不到。

去 Logi Options+ 里给它指定一个动作,推荐「鼠标中键」「前进/后退」,或键盘的 F13~F24(真实键盘基本不用,本程序专门把 F13+ 认成拇指键)。

想确认某个按钮到底发了什么,跑 疯键狂鼠cli.exe probe --secs 30,然后按下那个按钮,终端会逐条打印收到的事件。

为什么由软件模拟的按键不计入键盘次数?

因为要把「驱动合成的按键」和「你真按的键」分开 —— 罗技侧键就是靠这个还原成鼠标事件的。

副作用是 AutoHotkey 之类工具模拟出来的按键也不计入键盘次数。正常用物理键盘完全不受影响。

提示「按键抖动,疑似双击故障」是什么意思?

同一个键在 35 毫秒内「松开又按下」,人手做不到这么快,基本是触点抖动 —— 机械键盘轴体老化、鼠标微动磨损都是这个表现。

累计到 2 次以上就会红字点名。偶尔一次不会提示(避免误伤手快连按),真的坏了会反复出现。保修期内可以直接拿这条去送修。

换了新键盘,为什么旧键盘的数据还在?

这是设计如此。每台设备各记各的,换键盘不会清空任何数据,旧型号那一项原样保留,型号换回来还能接着累计。

想在新设备上从零看,用「重置键盘统计」开一个新分段,总数仍然连续可查。

鼠标行程的数字准吗?

取决于 DPI 准不准。行程 = 原始计数 ÷ DPI。

DPI 优先从驱动读(目前只有支持 HID++ 的罗技能读)。读不到就在设置 →「鼠标 DPI」手填,填一次长期有效。两样都没有时按 1000 DPI 估算,卡片和报告里会标「默认估算」—— 那种数字只能看个大概。

设备列表里一只鼠标显示好几条,或者合并成一条?

一个无线接收器在系统里会被拆成多个 HID 集合(鼠标、音量键、厂商自定义各一条)。程序按「同一只设备」合并成一条显示,后面标注「合并 N 个 HID 集合」。

主板 RGB 灯控、键盘音量旋钮这类不声明自己是鼠标/键盘的接口,不会单独显示。统计一直按整机汇总,列表长短不影响数字。