Tutu鼠标钩子自动点击录制软件:源码不在一个包里,但这条路比你想的短
先对齐一下:你要的“Tutu”,核心功能是什么
搜索“Tutu鼠标钩子”,能碰到几个不同的东西:有2017年就收录在下载站的“Tutu凌动鼠标”,被描述为“鼠标辅助工具”;也有GitHub上叫ttwarmup的Python项目,做的是鼠标动作录制和回放;还有叫TutuAgent、图图智控的,方向各不相同。
它们共享同一套底层需求:监听全局鼠标事件,把坐标、点击和时间间隔记录下来,然后按原样回放。 不管名字叫什么,只要目标是“录下来、自动放”,技术路径是相通的。Tutu凌动鼠标本身的源码并没有像CMS整站那样有统一的公开流传包,但实现一个功能等价、甚至更干净的工具,比找那个特定的安装包更快。
两条技术路线:系统级记录 vs 低级钩子
Windows下做鼠标录制回放,有两个成熟方向。
第一条是WH_JOURNALRECORD + WH_JOURNALPLAYBACK。 这对钩子是专门为“录制和回放输入消息”设计的,系统会帮你把原始的鼠标和键盘消息按顺序记录下来,回放时按时间戳重新投递。优点是语义最直接,录什么放什么,坐标和点击天然包含在内;缺点是系统级钩子需要在DLL中实现,调试和部署比单进程程序多一层结构。
第二条是WH_MOUSE_LL(低级鼠标钩子)。 它在鼠标事件分发给任何窗口之前拦截,能拿到全局的坐标、按键状态和消息类型。录制端用SetWindowsHookEx挂上钩子,回调里把WM_MOUSEMOVE、WM_LBUTTONDOWN等事件和坐标写入列表;回放端用SendInput或mouse_event按记录的时间间隔重新注入。这条路更灵活,C#、C++、Python都能直接调,不需要写DLL,是当前多数轻量自动化工具的选择。
Tutu凌动鼠标那类工具,真正难的不是“钩子”,是“回放的精度”
钩子挂上去、坐标记下来,这部分两三百行代码就能跑通。拉开体验差距的是回放环节:要不要还原每一步之间的时间间隔?移动是直接跳到目标坐标,还是模拟人类轨迹分步移动?点击之间有没有随机延迟?这些细节决定了录出来的动作是“像人”还是“像机器”。ttwarmup的思路可以借鉴:它录的是鼠标位置而不是点击本身,通过调整动作之间的随机延迟来让序列不那么规律,适合需要“自然感”的场景。如果你的目标是抢购或固定流程自动化,直接按时间戳精确回放反而更合适。先想清楚你要哪种“回放”,再选技术方案。
源码展示:两条可以直接落地的路线,按你的技术栈选
路线一:C# + WH_MOUSE_LL,适合做Windows桌面工具
C#做这件事的社区资料非常成熟。核心结构包括:一个钩子管理类(封装SetWindowsHookEx、UnhookWindowsHookEx、CallNextHookEx),一个录制回调(把MSLLHOOKSTRUCT里的坐标和鼠标消息类型存进List
这条路线适合你: 想要一个带界面的Windows工具,能直接编译成exe,用户双击就能用。
路线二:Python + pynput / ttwarmup,适合快速验证和跨平台
如果不想碰Windows API的P/Invoke,Python的pynput库把全局鼠标监听封装得很干净:listener = mouse.Listener(on_move=..., on_click=...),启动后就能拿到全局事件。录制端把(x, y, button, timestamp)追加到列表,回放端用mouse.Controller().position和click按时间间隔重放。ttwarmup就是一个可参考的完整实现,它用Python 3.8+、pip install -r requirements.txt就能跑,macOS上需要授予终端“辅助功能”权限,Windows和Linux下开箱即用。它的录制逻辑甚至是“只移动光标、不点击”来记录位置,回放时再执行点击,适合需要精准落点的场景。
这条路线适合你: 想快速看到效果,或者需要跨Windows/macOS/Linux使用,不追求原生桌面体验。
核心数据结构:不管哪条路线,录下来的都是“事件序列”
一个录制回放工具的最小数据模型只需要三个字段:type(移动/按下/抬起/滚轮)、x、y,外加一个timestamp用于计算间隔。C#里可以用struct或class,Python里用tuple或dataclass。存成JSON或CSV都行,回放时按timestamp的差值sleep即可。这个结构简单到你可以在一个下午写出来,复杂的是边界处理:多显示器下的负坐标、高DPI缩放、录制和回放时的权限问题。
搭建教程:从零到“录一段、放一段”的完整路径
路线一:C#最小可运行项目的搭建步骤
- 建一个Windows Forms或WPF项目,.NET Framework 4.7.2+或.NET 6+均可。2. 声明P/Invoke签名:SetWindowsHookEx、UnhookWindowsHookEx、CallNextHookEx、SendInput,以及MSLLHOOKSTRUCT结构体。3. 实现钩子回调:在WH_MOUSE_LL的回调里判断wParam(WM_MOUSEMOVE/WM_LBUTTONDOWN/WM_LBUTTONUP等),把坐标和时间戳存进List,然后调用CallNextHookEx放行。4. 实现回放:遍历列表,按相邻事件的timestamp差值Thread.Sleep,用SendInput注入对应的鼠标事件。5. 加一个全局热键(如F9开始/停止录制,F10回放),用RegisterHotKey或低级键盘钩子实现。
实测注意:如果用WH_MOUSE_LL,回调里不要做耗时的操作,否则会拖慢整个系统的鼠标响应。把数据写入后台队列,或者只做最小的记录动作。
路线二:Python + ttwarmup的快速跑通
- 环境:Python 3.8+,git clone ttwarmup仓库,pip install -r requirements.txt。2. 录制:运行脚本,按提示把鼠标移动到目标位置,工具会记录坐标而不要求点击。3. 编辑序列:ttwarmup支持调整动作的随机延迟和权重,在main.py的generate_sequence方法附近修改。4. 回放:启动自动化,工具会按配置的序列和延迟移动鼠标并执行点击。5. macOS权限:如果跑在macOS上,需要在“系统设置 → 隐私与安全性 → 辅助功能”中给终端或运行它的应用打勾,否则监听不到鼠标事件。
实测注意:ttwarmup的定位是“记录位置 + 回放动作”,它不记录完整的点击流,而是按你配置的动作类型(like/bookmark/follow)在录制的位置上执行。如果你的需求是“精确回放我录下的每一次点击”,需要自己补上点击事件的捕获,或者直接用pynput写一个更贴近需求的版本。
跨平台差异:Windows、macOS、Linux各有一个坑
Windows:WH_MOUSE_LL全局钩子不需要管理员权限,但如果目标程序以管理员身份运行,你的工具可能需要提权才能把SendInput注入进去。macOS:辅助功能权限是硬门槛,没有授权,监听和模拟都会被系统静默拦截。Linux:X11下可以用pynput,Wayland下全局输入监听受到限制,不同桌面环境的支持程度不一。如果你只做Windows工具,这些跨平台问题可以完全忽略。
实测踩坑:回放“点不准”的两个常见原因
坑一:DPI缩放。 在高DPI屏幕上,录制的坐标是物理像素,回放时SendInput使用的是逻辑坐标,两者不一致会导致点击偏移。解决方式是在程序清单中声明PerMonitorV2 DPI感知,或者在录制和回放时统一做坐标换算。坑二:多显示器负坐标。 副屏在主屏左侧时,坐标可能是负数。MSLLHOOKSTRUCT的pt字段本身支持负值,但如果你在代码里做了Math.Abs或类型转换,就会丢符号。回放前检查坐标范围,不要假设x和y永远为正。
这套“路线”最适合谁,以及包里有什么
没有“Tutu源码包”,但你拿到的是更可控的东西
🔥永久赞助9.9(高速下载/无广告/无转存)
✅网盘下载(下载限速/需要转存/有广告)
这篇内容不指向某一个加密或残缺的流传安装包,而是给出了两条完整可落地的技术路线和现成的开源参考项目。C#路线适合想做Windows桌面工具的人,Python路线适合想快速验证或跨平台的人。ttwarmup和KeyMouseHook都是公开项目,你可以直接clone、读代码、改逻辑,不存在“源码缺文件”或“加密无法二开”的问题。
适合谁:需要“重复点击/录制回放”但不想被成品软件限制的人
适合自动化测试、重复性表单填写、固定流程操作、个人效率工具等场景。也适合想学习Windows钩子机制和输入模拟的开发者。不适合需要绕过反作弊、破解授权或进行未授权自动化操作的场景。录制回放工具的能力边界,取决于你用它做什么,技术本身是中性的。
免责声明:本文由彩虹源码网(www.yuanmaz.com)整理发布,仅供Windows钩子编程、C#/Python开发和合法自动化工具学习参考。文中提及的ttwarmup、KeyMouseHook等开源项目须遵守其各自的开源许可证。鼠标录制回放工具不得用于绕过软件授权、游戏反作弊、未经授权的自动化操作或任何违反服务条款和法律法规的场景。流传的“Tutu”相关安装包的安全性需自行审计,本文不构成对任何特定第三方软件安全性和可用性的保证。
觉得内容不错?我要





