hidden cursor (隐藏光标)????? ? 最近由于项目的需要,我们的头要求我做关于java远程控制系统,昨天遇到一
hidden cursor (隐藏光标)
????? ? 最近由于项目的需要,我们的头要求我做关于java远程控制系统,昨天遇到一个问题:在远程控制桌面不能有自己的光标(也是就要隐藏这个光标),好像java API中没有隐藏方法,折腾了半天终于找到了解决的办法,代码如下:
?
- int[]?pixels?=?new?int[16?*?16];??//用int数组可以构建一个图片 ??
- Image?image?=?java.awt.Toolkit.getDefaultToolkit().createImage(new?MemoryImageSource(16,?16,?pixels,?0,?16)); ??
- Cursor?transparentCursor?=?java.awt.Toolkit.getDefaultToolkit().createCustomCursor(image,?new?Point(0,?0),?"invisiblecursor");?//invisiblecursor是任意取的 ??
- setCursor(transparentCursor);???
?
关于远程控制原理与实现,下一期将会讲到
1 楼 liyong_2003_cn 2007-12-28 不错,我也在研究java的远程控制,我有几个问题,你看看你是怎么解决的?
1)抓图的速度够不够?我试了试,一秒钟还不到十个frame;
2)传输时是怎么进行压缩的?是否支持p2p的传输?;
3)控制方移动光标时,在被控制方怎么移动的?
4)从技术角度讲,是不是java的远程控制效率会低一些?用C或delphi来实现效率会高一些?
不知道你是否也在研究这些问题,我一直在思考这引起问题的最佳答案。 2 楼 timerri 2007-12-28 说一下我对windows系统的想法
1.受控端基本就是个消息转发器,它hook桌面各个窗口的wm_paint消息,并wrap实际的窗口dc到一个内存dc中转发给控制端。并把控制端的操作事件转发到实际窗口中去。
2.控制端还原各个dc到相应的位置上,并模拟生成鼠标键盘事件发往受控端。
3.我最多只用java做控制端,受控端一定用本地代码实现。
你们以为如何? 3 楼 liuzongan 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的远程控制那么快,也许是技术不行啊
4 楼 liangguanhui 2007-12-29 其实现在java的性能已经不错了,特别是io方面,我觉得应该跟native应该不会差太远。
之前曾经看过一片关于后门程序的文章,里面说过,这种远程控制的难点(或者叫最容易体现特色的地方)就是他的影像传输。