论坛首页 Java企业应用论坛

hidden cursor (隐藏光标)

浏览 3415 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2007-12-28  

        最近由于项目的需要,我们的头要求我做关于java远程控制系统,昨天遇到一个问题:在远程控制桌面不能有自己的光标(也是就要隐藏这个光标),好像java API中没有隐藏方法,折腾了半天终于找到了解决的办法,代码如下:

 

java 代码
  1. int[] pixels = new int[16 * 16];  //用int数组可以构建一个图片   
  2. Image image = java.awt.Toolkit.getDefaultToolkit().createImage(new MemoryImageSource(1616, pixels, 016));   
  3. Cursor transparentCursor = java.awt.Toolkit.getDefaultToolkit().createCustomCursor(image, new Point(00), "invisiblecursor"); //invisiblecursor是任意取的   
  4. setCursor(transparentCursor);   

 

关于远程控制原理与实现,下一期将会讲到

   发表时间:2007-12-28  
不错,我也在研究java的远程控制,我有几个问题,你看看你是怎么解决的?
1)抓图的速度够不够?我试了试,一秒钟还不到十个frame;
2)传输时是怎么进行压缩的?是否支持p2p的传输?;
3)控制方移动光标时,在被控制方怎么移动的?
4)从技术角度讲,是不是java的远程控制效率会低一些?用C或delphi来实现效率会高一些?
不知道你是否也在研究这些问题,我一直在思考这引起问题的最佳答案。
0 请登录后投票
   发表时间:2007-12-28  
说一下我对windows系统的想法
1.受控端基本就是个消息转发器,它hook桌面各个窗口的wm_paint消息,并wrap实际的窗口dc到一个内存dc中转发给控制端。并把控制端的操作事件转发到实际窗口中去。
2.控制端还原各个dc到相应的位置上,并模拟生成鼠标键盘事件发往受控端。
3.我最多只用java做控制端,受控端一定用本地代码实现。

你们以为如何?
0 请登录后投票
   发表时间:2007-12-29  
大家好,现在我做的java远程控制系统,有三个角色:1、控制端(applet),2、消息转发器(Socket服务,于tomcat一起启动),3、被控制端(并没有启动任何服务),所以不支持p2p。

1)控制端、被控制端与Socket服务(转发器)建立两个socket连接分别是:controlSocket和screenSocket;
2) 当转发器接收到被控制端连接(也是被控制端screenSocket)时,它会转发给一个或多个控制端(只有一个applet控制)。
3)当转发器接收到控制端(applet)连接(也是控制端controlSocket),它会把控制信息给送给被控制端,用robot类进行操作。
用java做很难让远程控制像QQ的远程控制那么快,也许是技术不行啊
0 请登录后投票
   发表时间:2007-12-29  
其实现在java的性能已经不错了,特别是io方面,我觉得应该跟native应该不会差太远。

之前曾经看过一片关于后门程序的文章,里面说过,这种远程控制的难点(或者叫最容易体现特色的地方)就是他的影像传输。
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics