`
liuzongan
  • 浏览: 92952 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

hidden cursor (隐藏光标)

阅读更多

        最近由于项目的需要,我们的头要求我做关于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);   

 

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

分享到:
评论
4 楼 liangguanhui 2007-12-29  
其实现在java的性能已经不错了,特别是io方面,我觉得应该跟native应该不会差太远。

之前曾经看过一片关于后门程序的文章,里面说过,这种远程控制的难点(或者叫最容易体现特色的地方)就是他的影像传输。
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的远程控制那么快,也许是技术不行啊
2 楼 timerri 2007-12-28  
说一下我对windows系统的想法
1.受控端基本就是个消息转发器,它hook桌面各个窗口的wm_paint消息,并wrap实际的窗口dc到一个内存dc中转发给控制端。并把控制端的操作事件转发到实际窗口中去。
2.控制端还原各个dc到相应的位置上,并模拟生成鼠标键盘事件发往受控端。
3.我最多只用java做控制端,受控端一定用本地代码实现。

你们以为如何?
1 楼 liyong_2003_cn 2007-12-28  
不错,我也在研究java的远程控制,我有几个问题,你看看你是怎么解决的?
1)抓图的速度够不够?我试了试,一秒钟还不到十个frame;
2)传输时是怎么进行压缩的?是否支持p2p的传输?;
3)控制方移动光标时,在被控制方怎么移动的?
4)从技术角度讲,是不是java的远程控制效率会低一些?用C或delphi来实现效率会高一些?
不知道你是否也在研究这些问题,我一直在思考这引起问题的最佳答案。

相关推荐

    VBA光标移动控制代码

    ws.Columns("A:A").Hidden = True '隐藏A列以确保B列成为左边的第一列 ws.Windows(1).SplitColumn = 5 '设置分割线在第6列(因为数组索引从0开始,所以5代表F列) ws.Columns("A:A").Hidden = False '还原A列的...

    JavaScript自定义文本框光标

    实现自定义文本框光标首先需要准备一个HTML结构,这包括了模拟光标的`div`和隐藏的表单元素,如下所示: ```html <div class="cursor_module"> <p class="cursor_content"></p><span class="cursor"> ...

    CSS-day06 (2).pptx

    cursor 设置或检索在对象上移动的鼠标指针 采用何种系统预定义的光标形状。 * cursor: default; 小白默认。 * cursor: pointer; 小手移动。 2.2 轮廓线 outline outline 是绘制于元素周围的一条线,位于边框边缘...

    贪吃蛇源码

    void hidden()//隐藏光标 { HANDLE hOut = GetStdHandle(STD_OUTPUT_HANDLE); CONSOLE_CURSOR_INFO cci; GetConsoleCursorInfo(hOut,&cci;); cci.bVisible=0;//赋1为显示,赋0为隐藏 SetConsoleCursorInfo(hOut...

    css基础5-定位布局-装饰

    - **光标类型(Cursor)**:通过`cursor`属性可以改变鼠标在元素上时的形状,例如`cursor: pointer;`表示链接样式,`cursor: crosshair;`表示十字准线等。 - **圆角边框(Border Radius)**:使用`border-radius`...

    html页面中常用的一些小方法整理

    11. **定义光标样式**:通过CSS可以设置各种光标样式,如`cursor: auto`, `cursor: default`, `cursor: hand`, `cursor: wait`, `cursor: text`, 等等。 12. **获取服务器信息**:在ASP.NET中,可以通过`Request....

    javascript常用代码.pdf

    - CSS提供了多种预定义的光标样式,例如`auto`、`default`、`hand`、`wait`等,通过`cursor`属性设置,如`cursor: hand`表示手形光标。 6. **获取服务器和客户端信息**: - JavaScript可以访问`Request....

    css常用属性

    `cursor` 定义光标样式,如`cursor: pointer;`显示手形光标。 这些CSS属性构成了网页设计的基础,熟练掌握它们能帮助我们创建更加美观且功能丰富的网页。在实际应用中,还可以结合其他高级特性,如响应式设计、动画...

    C语言编写的迷宫游戏讲解

    - **隐藏光标**:`hidden()`函数通过设置`CONSOLE_CURSOR_INFO`结构体来隐藏光标。 - **按键检测**:`get_key()`函数用于检测用户的按键输入。 #### 三、代码解析 1. **定义迷宫参数**:代码中定义了迷宫的高度...

    Html网页代码常用小技巧总结续,网页制作学习.docx

    8. **光标样式**:CSS中可以定义不同类型的光标,如 `cursor: auto`(标准光标)、`cursor: default`(箭头)、`cursor: hand`(手形)等,可以根据需要自定义网页元素的光标样式。 9. **获取服务器信息**:在ASP...

    day27-Toast Notification(面包形状的通知)

    这里的`#toast-notification`是吐司通知的容器,`class="hidden"`表示在初始状态时隐藏。`<p>`标签用于显示通知信息,而`<button>`则是关闭按钮。 在CSS中,我们可以定义吐司通知的样式,使其具有“面包形状”的...

    CSS常见属性速查手册

    - `cursor`: 设置鼠标光标样式,如`pointer`表示手形,`text`表示文本编辑状态。 以上只是CSS众多属性的一部分,实际使用中还包含颜色、边距、字体、过渡、动画等多种属性。了解并熟练掌握这些属性,将有助于创建...

    CSS+DIV实现的纵向垂直滑动门效果

    - **cursor**: 设置鼠标光标为手形。 - **#menu.h2, #menu.h3**: 定义了标题的样式。 - **margin**: 控制外边距。 - **padding**: 控制内边距。 - **color**: 设置字体颜色。 - **font-size**: 设置字体大小...

    css3看前端

    - `overflow`属性处理元素内容溢出,`hidden`隐藏溢出,`scroll`始终显示滚动条,`auto`根据需要显示滚动条。 七、浮动与清除浮动 - `float`属性允许元素浮动,`left`向左浮动,`right`向右浮动。多个浮动元素会...

    day08(CSS06-定位+装饰)v1.0.pdf

    **装饰性属性**如`cursor`可以改变鼠标悬停在元素上时的光标样式。常见的光标类型有`pointer`(手形)、`default`(箭头)和`text`(文本输入)等。此外,`border-radius`属性可以创建圆角或胶囊形状的按钮,通过...

    一个C++做的迷宫小游戏(附带源文件)

    void hidden()//隐藏光标 { HANDLE hOut = GetStdHandle(STD_OUTPUT_HANDLE); CONSOLE_CURSOR_INFO cci; GetConsoleCursorInfo(hOut,&cci;); cci.bVisible=0;//赋1为显示,赋0为隐藏 SetConsoleCursorInfo(hOut...

    jsp浏览器的兼容性

    在设置光标样式时,需要注意 cursor: pointer 是通用的,而 hand 只适用于 IE。 10.垂直居中 为了实现垂直居中,需要将 line-height 设置为当前 Div 相同的高度,然后通过 vertical-align: middle 实现。 11.导航...

    CSS语法速查表(CSS语法一览表)

    - **可选值**: `visible` (默认, 内容可见)、`hidden` (隐藏多余内容)、`scroll` (总是显示滚动条)、`auto` (根据需要显示滚动条)。 - **示例**: `overflow: auto;` **6.7 visibility** - **功能**: 设置元素是否...

    点击展开全部内容、收起全部内容

    cursor: pointer; /* 添加光标提示可点击 */ } .toggle-button:active + .toggle-content { display: block; /* 当按钮被点击时,显示内容 */ } ``` 这段CSS代码中,`:active`伪类表示按钮被按下时的状态,`+`是...

Global site tag (gtag.js) - Google Analytics