热门排行
简介
tentacle远程桌面是基于Java AWT、SpringBoot、websocket、canvas的跨平台远程桌面实现,目前支持远程桌面控制,剪切板共享、文件传输等。
该版本为TCP协议版本。
模块划分
1、common 公共开发库
2、tentacle-server 服务器端,主入口:cn.org.hentai.server.app.ServerApp。
3、tentacle-client 远程主机端(受控端),主入口:cn.org.hentai.client.app.Tentacle。
使用
1、修改配置文件的相应项目,比如监听端口,以及${rds.access.password}远程控制访问密码
2、使用mvn package编绎打包,服务器端使用original-tentacle-server-1.5.9.RELEASE.jar,被控制的主机端使用tentacle-client-1.0-SNAPSHOT.jar。
3、通过java -jar original-tentacle-server-1.5.9.RELEASE.jar启动服务器端
4、在需要被控制的机器上,使用java -jar tentacle-client-1.0-SNAPSHOT.jar来启动主机端,注意控制台输出,显示INFO: Connected to server...即表示己成功的连接到服务器端。
5、在浏览器里输入http://server_ip:server_port/,输入${rds.access.password}开始远程桌面控制。
系统使用指南
windows平台
在windows平台上,实际上有两个desktop,一个是正常使用时的desktop,就叫它workbench desktop吧,我们的程序可以与之交互,另外一个是专用于登陆/验证的desktop,这个就叫它logon desktop吧。 当系统处于未登陆、锁定中或是UAC提示时,logon desktop将切换到前台来,在这个情况下,我们的程序是无法进行截屏的,也无法发送按键,控制鼠标等。针对于这个问题,目前己经测试过如下方案:
1、命令行自动登陆/解锁
1.1、Logon,只支持windows 7以前的操作系统。
1.2、Logon Expert,可以完成自动登陆解锁,但是是收费的。
2、Mirror Driver,可以截取锁屏界面的画面,但是截取不到登陆输入框。
3、pGina,自动登陆方案,好像对系统用户有不可知的限制或要求,暂不可行。
4、其它命令行截屏工具,对于锁屏界面是全线溃败,没有一个能打的。。。
目前来说,windows平台的远程桌面比较苦逼,还在想办法,本项目短期内不会继续更新,找到解决方案了再说。 比较可行的办法是,设置系统用户自动登陆,然后在设置屏幕保护界面不要勾选“在恢复时显示登陆屏幕”,然后就可以一直用了。
linux平台
linux平台对扩展开发比较友好(或者是我比较了解linux的缘故吧),登陆界面上没有像windows那样的限制,比较好弄。 如果要在命令行模式下运行,或是想要设置自启动,有可能会碰到java.awt.AWTException: headless environment报错,这是因为缺少$DISPLAY环境变量所导致的java awt找不到相应桌面,进而无法截屏或控制鼠标,解决方法如下:
1、确定$DISPLAY变量的值,可以通过在桌面环境下,打开终端terminal,输入echo $DISPLAY来查看,一般不是:0就是:1
2、设置$DISPLAY环境变量,执行export DISPLAY=:0,你可以忽略掉第1步,直接使用:0或:1试试。
3、这个时候就可以正常启动tentacle-client了