This action will force synchronization from matrixy/tentacle远程桌面, which will overwrite any changes that you have made since you forked the repository, and can not be recovered!!!
Synchronous operation will process in the background and will refresh the page when finishing processing. Please be patient.
UDP协议版本有很严重的通信问题,先将UDP部分拆分到了udp分支上了,此分支还是TCP协议版本
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联系我。
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。