同步操作将从 matrixy/tentacle远程桌面 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
基于C#版的客户端正在开发中,在windows平台上会有更好的体验,仓库地址:https://gitee.com/matrixy/tentacle-client-win
cn.org.hentai.server.app.ServerApp
。cn.org.hentai.client.app.Tentacle
。${rds.access.password}
远程控制访问密码mvn package
编绎打包,服务器端使用original-tentacle-server-1.5.9.RELEASE.jar
,被控制的主机端使用tentacle-client-1.0-SNAPSHOT.jar
。java -jar original-tentacle-server-1.5.9.RELEASE.jar
启动服务器端java -jar tentacle-client-1.0-SNAPSHOT.jar
来启动主机端,注意控制台输出,显示INFO: Connected to server...
即表示己成功的连接到服务器端。http://server_ip:server_port/
,输入${rds.access.password}
开始远程桌面控制。# 协议标识头
48 45 4E 54 41 49 H E N T A I
01 指令:心跳
00 00 00 05 数据包长度5字节
48 45 4C 4C 4F H E L L O
Google Chrome
及Firefox
上表现相当好,很少有单祯画面解压时间超过10毫秒,未来将进一步考虑更加慢的高压缩比算法,进一步的控制流量的消耗。因为浏览器端脚本不能百分百的拦截所有的组合键,所以不是所有的组合键都能够用于远程控制端,比如ALT+TAB
的切换窗口(tentacle在窗口失焦时,将释放所有己按下的按键)。
注:向远程主机发送CTRL+ALT+DELETE组合键不起作用,估计使用的
java.awt.Robot
类有安全权限控制。
因为浏览器安全策略上的原因,故不做剪切板的直接访问,只提供了获取与设置远程主机的剪切板的操作界面与功能。
在windows平台上,实际上有两个desktop,一个是正常使用时的desktop,就叫它workbench desktop
吧,我们的程序可以与之交互,另外一个是专用于登陆/验证的desktop,这个就叫它logon desktop
吧。
当系统处于未登陆、锁定中或是UAC提示时,logon desktop
将切换到前台来,在这个情况下,我们的程序是无法进行截屏的,也无法发送按键,控制鼠标等。针对于这个问题,目前己经测试过如下方案:
目前来说,windows平台的远程桌面比较苦逼,还在想办法,本项目短期内不会继续更新,找到解决方案了再说。 比较可行的办法是,设置系统用户自动登陆,然后在设置屏幕保护界面不要勾选“在恢复时显示登陆屏幕”,然后就可以一直用了。
linux平台对扩展开发比较友好(或者是我比较了解linux的缘故吧),登陆界面上没有像windows那样的限制,比较好弄。
如果要在命令行模式下运行,或是想要设置自启动,有可能会碰到java.awt.AWTException: headless environment
报错,这是因为缺少$DISPLAY
环境变量所导致的java awt
找不到相应桌面,进而无法截屏或控制鼠标,解决方法如下:
$DISPLAY
变量的值,可以通过在桌面环境下,打开终端terminal
,输入echo $DISPLAY
来查看,一般不是:0
就是:1
$DISPLAY
环境变量,执行export DISPLAY=:0
,你可以忽略掉第1步,直接使用:0
或:1
试试。tentacle-client
了目前在如下两个方面上尚有不足之处,有兴趣的小伙伴可以留言或加QQ65827536联系我。
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。