admin 发表于 2026-10-12 09:30:23

零安装群控 Windows:一套键鼠广播到几十台被控

先说效果

九宫格点开那栏,一台主控,同时把键鼠广播到几十台 Windows 上。我在主控那格敲字、点鼠标,旁边几十台被控跟着一起动。同事第一次见还以为我这边装了同步软件——其实被控那几十台干干净净,一个 agent 都没装,靠的就是系统自带的 RDP。

这套东西我们做进了「七亿批量远程管理工具」里。底下原理不复杂:FreeRDP 客户端库自带输入注入的接口,把同一组键鼠事件程序化地广播进多个 RDP 会话就行。真正折腾人的全在"不复杂"之外。

真机上趟出来的几个坑

· FreeRDP 在 Windows 端,连之前必须先 WSAStartup,不然后面 getaddrinfo 全挂,报的错还看不出是这回事。

· 鼠标点击别把"移动"和"按下"揉在一发里。带上移动标志,press 会被引擎吞掉,现象就是鼠标能动、就是点不了。移动归移动,按下/抬起各发各的。

· 键盘要按扫描码发,别按字符发。拿 unicode 发特殊键会乱码——你按 Delete,对面打出来一个 (。

· 鼠标坐标要按目标机的分辨率归一化,几台机器缩放不一样,差一点就点歪。

· FreeRDP 不是线程安全的。UI 线程和后台轮询抢同一个会话,那一路会话就会被搞坏(画面不刷新,退回去也是坏的,只能重连)。

· 最阴的是 WinForms 焦点:点过按钮后焦点留在按钮上,按空格等于勾了「群控」勾选框、按回车等于又点了一次按钮——表现出来就是"群控莫名其妙重启""回车把格子断开了"。而且回车/Tab 是"对话框键",KeyPreview 的 KeyDown 根本不触发,得换 ProcessCmdKey 才截得住。

什么时候别用

异构机器、爱弹更新弹广告的机器要慎用——某台突然弹个窗,广播过去的点击就落到错地方了。安全桌面、UAC、锁屏这类界面,键鼠注入根本进不去,这跟引擎没关系,是系统本身不让。

配套的详细踩坑我写进博客了(零安装做 Windows 群控),这里就不铺开。工具用法在说明书里。
页: [1]
查看完整版本: 零安装群控 Windows:一套键鼠广播到几十台被控