利用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. Regular Expression(正则表达式)之邮箱验证

    正则表达式(regular expression, 常常缩写为RegExp) 是一种用特殊符号编写的模式,描述一个或多个文本字符串.使用正则表达式匹配文本的模式,这样脚本就可以轻松的识别和操作文本.其 ...

  2. 知识管理(KM) - 数据流

    快速链接: 人力资源知识体系索引 本章主要列出知识管理(KM)中涉及到的所有表. 步骤 操作 相关表 说明 1 知识管理资料   基础资料,见附表1 2 知识主题(107301) KMBlg:主题 K ...

  3. 使用GDI绘制一条直线

    这个是绘制一条直线的代码 private void Form1_Load(object sender, EventArgs e)        {            //一根笔 颜色  一张纸  ...

  4. Swashbuckle Swagger组件扩展

      用Swagger有一段时间, 我的model层是一个单独的dll 但给Swagger配置的是api层dll的XML. 所以就导致了model字段的注释不能够反应到参数说明. 所以我fork了一份 ...

  5. [HDU2037]贪心入门

    今年暑假不AC Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Sub ...

  6. 你真的了解volatile吗,关于volatile的那些事

    很早就接触了volatile,但是并没有特别深入的去研究她,只有一个朦胧的概念,就是觉得 用她来解决可见性的,但可见性又是什么呢? 最近经过查阅各种资料,并结合自己的思考和实践,对volatile有了 ...

  7. 道路修建 2(自创题+题解)(From NOI2011)

    道路修建这道题想来各位不陌生(传送门在此——Bzoj2435),看了此题,一开始以为是最初各个点处于分散状态,然后做了一下,直到发现标程都有点问题,才发现原题是说本来各点已经处于连接完毕的状态(phi ...

  8. Git环境搭建以及上传到GitHub全文记录

    1.百度搜索下载git,官网可能很慢,我在百度软件里面下载的.当然可能不是最新版本.一路回车安装就好. 2.设置本机git的用户名和邮箱地址 查看当前电脑是否设置了用户名称 $ git config ...

  9. django进阶-4

    前言: 下篇博客写关于bootstrap... 一.如何在脚本测试django from django.db import models class Blog(models.Model): name ...

  10. 2015.07.12hadoop伪分布安装

    hadoop伪分布安装   Hadoop2的伪分布安装步骤[使用root用户用户登陆]other进去超级用户拥有最高的权限 1.1(桥接模式)设置静态IP ,,修改配置文件,虚拟机IP192.168. ...