利用Robot类实现自动操作,实现效果是运行之后鼠标自动定位到整个屏幕坐标系的(635,454)位置,输入wangtianze

 package com.wtz.util;

 import java.awt.AWTException;
import java.awt.Robot;
import java.awt.event.InputEvent;
import java.awt.event.KeyEvent; /**
* @author wangtianze QQ:864620012
* @date 2017年4月16日 上午1:20:32
* <p>description:Robot测试类,实现效果是运行之后鼠标自动定位到整个屏幕坐标系的(635,454)位置,输入wangtianze</p>
*/
public class RobotTest {
public static void main(String[] args){
try {
Robot robot = new Robot();
//鼠标移动到坐标(635,454)
RobotTest.clickMouse(robot, 635, 454, 500); int[] keys = {
KeyEvent.VK_W,KeyEvent.VK_A,
KeyEvent.VK_N,KeyEvent.VK_G,
KeyEvent.VK_T,KeyEvent.VK_I,
KeyEvent.VK_A,KeyEvent.VK_N,
KeyEvent.VK_Z,KeyEvent.VK_E};
robot.delay(500);
RobotTest.pressKey(robot,keys,500);
} catch (AWTException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
} public static void pressKey(Robot robot,int[] keys,int delay){
for(int i=0;i<keys.length;i++){
robot.keyPress(keys[i]);
robot.keyRelease(keys[i]);
robot.delay(500);
}
//处理完需要延迟
robot.delay(delay);
} public static void clickMouse(Robot robot,int x,int y,int delay){
robot.mouseMove(x, y);
robot.delay(500);
robot.mousePress(InputEvent.BUTTON1_MASK);
robot.mouseRelease(InputEvent.BUTTON1_MASK);
robot.delay(delay);
}
}

利用Robot类实现监控屏幕,实现效果是运行后每隔50微秒获取当前屏幕图像,显示到JFrame内

 package com.wtz.util;

 import java.awt.AWTException;
import java.awt.Dimension;
import java.awt.Graphics2D;
import java.awt.Rectangle;
import java.awt.RenderingHints;
import java.awt.Robot;
import java.awt.Toolkit;
import java.awt.image.BufferedImage; import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JLabel; /**
* @author wangtianze QQ:864620012
* @date 2017年4月16日 下午4:43:11
* <p>description:Robot实现监控屏幕,实现效果是每隔50微秒获取当前屏幕图像,显示到JFrame内</p>
*/
public class RobotScreenTest {
public static void main(String[] args){
try {
Robot robot = new Robot();
JFrame jframe = new JFrame();
//设置标题
jframe.setTitle("wangtianze监控屏幕工具");
JLabel label = new JLabel();
jframe.add(label);
jframe.setSize(800,600);
//设置可见
jframe.setVisible(true);
//设置置顶
jframe.setAlwaysOnTop(true);
//控制台退出模式
jframe.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//获取屏幕大小
Toolkit toolkit = Toolkit.getDefaultToolkit();
Dimension dm = toolkit.getScreenSize();
while(true){
//一个矩形面板
Rectangle rec = new Rectangle(0, 0, (int)dm.getWidth(), (int)dm.getHeight());
//按照矩形截取图片到缓冲流
BufferedImage img = robot.createScreenCapture(rec);
//缩放图片
BufferedImage newImg = RobotScreenTest.resize(img, jframe.getWidth(), jframe.getHeight());
label.setIcon(new ImageIcon(newImg));
try {
Thread.sleep(50);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
} catch (AWTException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
} public static BufferedImage resize(BufferedImage img, int newW, int newH){
int w = img.getWidth();
int h = img.getHeight();
//创建一个缩放后的图片流
BufferedImage newImg = new BufferedImage(newW,newH,img.getType());
Graphics2D g = newImg.createGraphics();
//设置模式
g.setRenderingHint(RenderingHints.KEY_INTERPOLATION,RenderingHints.VALUE_INTERPOLATION_BILINEAR);
//按比例缩放
g.drawImage(img, 0, 0, newW, newH, 0, 0, w, h, null);
g.dispose();
return newImg;
}
}

Java关于Robot类的使用以及远程桌面的实现的更多相关文章

  1. Java关于Robot类的使用

    利用Robot类实现自动操作,实现效果是运行之后鼠标自动定位到整个屏幕坐标系的(635,454)位置,输入wangtianze package com.wtz.util; import java.aw ...

  2. java使用Robot类在eclipse上实现自动编写代码

    运行时,把输入法关掉,切换成系统自带的输入法即可: 第二个类是自定义的键值Map集合,主要是为了方便输入字符串,有需要的可以自行添加: 主要的代码如下,会创建一个名称为Automaton.java的类 ...

  3. java学习笔记——基于Robot类的屏幕分享

    直接上代码,具体看注释: package robot; import java.awt.AWTException; import java.awt.Dimension; import java.awt ...

  4. Mac环境下用Java(Sikuli+Robot)实现页游自动化

    转载请注明出自天外归云的博客园:http://www.cnblogs.com/LanTianYou/ Sikulix(以前叫Sikuli)在Mac电脑的环境配置步骤如下: 1.从官网上下载Sikuli ...

  5. java之URL类

    Java的网络类可以让你通过网络或者远程连接来实现应用.而且,这个平台现在已经可 以对国际互联网以及URL资源进行访问了.Java的URL类可以让访问网络资源就像是访问你本地的文件夹一样方便快捷.我们 ...

  6. Java的URL类(一)

    转:https://www.cnblogs.com/blackiesong/p/6182038.html Java的URL类(一) Java的网络类可以让你通过网络或者远程连接来实现应用.而且,这个平 ...

  7. 使用Robot类模拟鼠标、键盘事件

    Robot类用于模拟鼠标.键盘事件,生成本机系统输入事件.Robot 的主要用于自动化.自运行的程序和其他需要自动控制鼠标和键盘的程序 相当于实际操作的效果,不仅仅只是生成对应的鼠标.键盘事件.比如R ...

  8. Java使用Robot完成QQ轰炸机

    效果 网上吵架吵不过别人怎么办?女朋友让你从1数到10000怎么办?想恶搞朋友怎么办?QQ轰炸机你值得拥有!(注:为了更好的学习编程,敲的练手项目,仅作学习使用) 自定义发送内容,自定义发送条数,&q ...

  9. docker 部署vsftpd服务、验证及java ftp操作工具类

    docker部署vsftpd服务 新建ftp文件存储目录/home/ftp cd /home mkdir ftp 创建一个组,用于存放ftp用户 groupadd ftpgroups 创建ftp用户, ...

随机推荐

  1. java读取和写入txt文件

    package com.yinghuo.testDES; import java.io.BufferedReader;import java.io.BufferedWriter;import java ...

  2. 深入理解Node系列-细说Connect(上)

    前言 想必对于广大前后端的同学们,Node 或是用来作为网站服务器的搭建,亦或是用来作为开发脚手架的运用,或是早有套路,亦或是浅尝辄止.从现在开始博主将会不定时的对 Node 系列的产品做分析,其中夹 ...

  3. 免费的ERP真的那么可怕?请少一些偏见!

    为什么说这个话题,因为看到了太多关于对免费ERP的偏见,也许这也只是那些卖软件的营销策略:从事这个行业的人,应该能看出其中的端倪,但是对于吃瓜群众来说,那就真是误导了... 所以今天发表下自己的看法, ...

  4. linux中添加环境变量(python为例)

    最近想用Django搭建个人博客,之前学了些python基础语法,准备边学习Django边实战操作.自己有一个阿里云服务器,用的centOS,自带的是python2.7版本,我直接安装了python3 ...

  5. ACM 阶乘的0

    阶乘的0 时间限制:3000 ms  |  内存限制:65535 KB 难度:3   描述 计算n!的十进制表示最后有多少个0   输入 第一行输入一个整数N表示测试数据的组数(1<=N< ...

  6. node.js爬虫爬取拉勾网职位信息

    简介 用node.js写了一个简单的小爬虫,用来爬取拉勾网上的招聘信息,共爬取了北京.上海.广州.深圳.杭州.西安.成都7个城市的数据,分别以前端.PHP.java.c++.python.Androi ...

  7. iOS PureLayout使用

    PureLayout是iOS Auto Layout的终端API,强大而简单.由UIView.NSArray和NSLayoutConstraint类别组成.PureLayout为大多数Auto Lay ...

  8. TCP/IP笔记(二)TCP/IP简介

    上回,主要介绍了下协议和OSI参考模型,并简单了解下网络构成要素,这回该说说TCP/IP了 互联网与TCP/IP的关系   互联网进行通信时,需要相应的网络协议,TCP/IP原本就是为使用互联网而开发 ...

  9. Parallel.For 你可能忽视的一个非常实用的重载方法

    说起Parallel.For大家都不会陌生,很简单,不就是一个提供并行功能的for循环吗? 或许大家平时使用到的差不多就是其中最简单的那个重载方法,而真实情况 下Parallel.For里面有14个重 ...

  10. Chrome 33+ 自建 扩展 实现 custom.css

    http://bbs.kafan.cn/thread-1674386-1-2.html