初遇键鼠镜像问题

KeymouseGo,OpenMultiBoxing,…

分别试了七种不同的开源项目和软件,虽然最终也没找到一个比较好的方案,但这里还是分享下用到的解决方案。

键鼠镜像的相关内容可以谷歌“mirror mouse”,也可以搜到不少相关的讨论帖子。

假设现有100台虚拟机,需要执行”鼠标左键双击打开浏览器“的任务。一台一台点肯定不行,100台那得点到天昏地暗。那只能思考有没有自动化的方案。

最初方案:一个软件,将A主机作为服务器,其他主机作为客户端。在A主机上的键鼠操作会被”镜像“到所有客户端上。比如A主机的鼠标光标移动到”开始“菜单,其他所有客户端的光标也会移动到”开始“菜单上。

一开始想自己写个,但是windows主机之间怎么通信这一块就碰到了问题。估了一下工作量,感觉没个一天两天搞不定,只能找找有没有现成的工具了。

碰到的第一个问题就是国内外对于键鼠同步的概念好像不同一样。如果去淘宝上找”键鼠同步软件“的话基本都能满足需求,但是去外网搜,搜出来的可谓是天差地别。

  • 国内的键鼠同步:和最上面提到的最初方案基本符合。或者是一台主机上打开多个窗口、将某个窗口的键鼠操作镜像到其他窗口。
  • 国外的键鼠同步:多台主机,鼠标移动到屏幕边缘的时候,键鼠输入会自动切换到另一台主机。这些主机之间共享键鼠。如下图。比如在Windows-one上将鼠标移动到屏幕右边界,会自动将光标移动到windows-two的屏幕上。

一个是镜像,一个是共享。这两个可谓是天差地别,唯一的共通之处就是都是用一套键鼠来操控多个主机或多个窗口。

经常打游戏的可能对这个比较熟悉:这不就是多开嘛,一款游戏多个账号,开多个窗口去刷副本刷资源。在游戏中,这种操作被叫做”multi-box“。待会也会提到我用到的一个被用于魔兽世界的multi-box工具。

没戏。连试用版都要登陆注册,或者是要连外网服务器输激活码,又或者是买了之后还要办年卡或者月卡,在内网环境下根本用不了。

当然,各位如果用的外网环境还是可以试试的。但写者的虚拟机都部署在内网,所以这个方案pass。

写者分别试了synergy,barrier,keyclone和Input Director这四种”键鼠同步“工具,就如同上面提到的那样,这些软件都是”共享“键鼠,而不是“镜像”键鼠。

  • synergy 1和barrier:synergy前期免费后面改收费了。现在免费的开源版本是synergy 1。synergy 2没公布,synergy 3收费。barrier则是从synergy 1分支出来的一个项目。我个人试了下synergy 1和barrier,使用上感觉差别不大,都是共享键鼠。
  • keyclone:要连外网+激活码。pass。
  • Input Director:功能看上去和synergy一样。但我用的时候一直扫描不到局域网的其他主机。用telnet看了下端口也都是开放的,搞了半天都用不了,最后pass。
Input Director

如果你有多个屏幕,那么可以试试这些工具。但写者的环境就一台显示器。100台虚拟机那要准备一百个屏幕吗?也不现实。

而且这些软件都不支持RDP。不能一台机子开几个远程连接连虚拟机。我试过了,鼠标移到远程桌面的边缘时不会切换到其他虚拟机上,我估计是识别不到。

Github链接

主要是用于wow的工具,但它除了能捕获到wow,eve这些游戏的窗口,也能捕获到系统窗口。可以一台机子开几个远程桌面,然后每个桌面之间镜像键鼠操作。虽然和最初的方案有点偏差,但至少可以镜像键鼠操作。

但毕竟这个工具是用于游戏的。对windows系统窗口不是很友好。拿文件管理器试了下,键盘输入完全无法镜像,不管按啥键都没法镜像。鼠标的话,光标的移动没啥问题。但是“点击”操作需要在option里面改下消息传输方式才能镜像,而且特别不好用。

最后只能换最初方案。改成一台主机先录制键鼠操作,生成脚本。将脚本发给其他主机,再通过中控下发指令让其他客户端执行脚本。因为都是克隆的虚拟机,所以分辨率和图标位这些都不用担心

最后找到了KeymouseGo,国产开源软件,最重要的是支持命令行输入和键鼠脚本的导出(txt格式),拿来做自动化还是没问题的。

Subscribe
提醒
0 评论
Inline Feedbacks
View all comments
0
在此留下你的评论x