Java实现自动化_Robot类简单应用

/**
*         Robot类   :
*
*             exec 函数声明:
*                 public Process exec (String command) throws IOException ,参数及功能说明:
*                     command: 一条指定的系统命令
*                     功能:在单独的进程中执行指定的字符串命令
*
*             keyPress 函数说明:
*                 public void keyPress(int keycode),参数及功能说明:
*                     keycode:要按下的键(例如,KeyEvent.VK_A)
*                     功能:模拟按下指定键
*
*             keyRelease 函数说明:
*                 public void keyRelease(int keycode),参数及功能说明:
*                     keycode:要释放的键
*                     功能:模拟释放指定键
*
* @param tovep
*/
import java.awt.Robot;
import java.awt.event.KeyEvent;
public class Exce {
public static void main(String[] args) {
try{
//创建自动操作类
Robot robot = new Robot();
/**
*
*         利用Runtime类运行Word程序的方法为:
*             Runtime.getRuntime().exec("cmd /c start winword");
*                                         括号里的是系统命令
*
*/
//启动记事本程序
Runtime.getRuntime().exec("cmd /c start notepad");
//延缓几秒钟,等待记事本程序启动成功
robot.delay(3000);
//模拟按下"Ctrl + Space" 组合键,启动输入法
pressKeyWithCtrl(robot,KeyEvent.VK_SPACE);
//模拟随机按下100个字母,输入汉字
for(int i=0;i<100;i++){
pressKey(robot, (int) (Math.random()* 25) + 'A');
pressKey(robot,KeyEvent.VK_SPACE);
}
//延缓5秒钟,一共观察
robot.delay(5000);
//关闭记事本
//closeApplication(robot);
}catch (Exception e){
System.out.println(e.getMessage());
}
}
//模拟按下键盘字符键
public static void pressKey(Robot robot, int keyvalue){
//模拟按下
robot.keyPress(keyvalue);
//模拟弹起
robot.keyRelease(keyvalue);
}
//模拟同时按下"Ctrl"键和字符键
public static void pressKeyWithCtrl(Robot robot, int keyvalue){
//模拟按下
robot.keyPress(KeyEvent.VK_CONTROL);
robot.keyPress(keyvalue);
//模拟弹起
robot.keyPress(keyvalue);
robot.keyRelease(KeyEvent.VK_CONTROL);
}
//模拟按下"Alt + F4"组合键,关闭当前应用程序
public static void closeApplication(Robot robot){
//模拟按下"Alt + F4"组合键
//模拟按下
robot.keyPress(KeyEvent.VK_ALT);
robot.keyPress(KeyEvent.VK_F4);
//模拟弹起
robot.keyRelease(KeyEvent.VK_ALT);
robot.keyRelease(KeyEvent.VK_F4);
//模拟按下"N",不保存文件退出记事本程序
//模拟按下
robot.keyPress(KeyEvent.VK_N);
//模拟弹起
robot.keyRelease(KeyEvent.VK_N);
}
}

最新内容请见作者的GitHub页:http://qaseven.github.io/

时间: 2024-09-20 14:24:22

Java实现自动化_Robot类简单应用的相关文章

Java实现自动化Robot类简单应用

/**      *         Robot类   :      *      *             exec 函数声明:      *                 public Process exec (String command) throws IOException ,参数及功能说明:      *                     command: 一条指定的系统命令      *                     功能:在单独的进程中执行指定的字符串命令

java实现利用String类的简单方法读取xml文件中某个标签中的内容_java

1.利用String类提供的indexOf()和substring()快速的获得某个文件中的特定内容 public static void main(String[] args) { // 测试某个词出现的位置 String reqMessage = "<?xml version=\"1.0\" encoding=\"ISO-8859-1\"?>" + "<in>" + "<head&g

Java使用自动化部署工具Gradle中的任务设定教程_java

tasks下面的代码展示了三个Gradle task,稍后会讲解这三者的不同. task myTask { println "Hello, World!" } task myTask { doLast { println "Hello, World!" } } task myTask << { println "Hello, World!" } 我的目的是创建一个task,当它执行的时候会打印出来"Hello, World!

java的md5加密类(zt)

加密 java的md5加密类 MD5算法是将数据进行不可逆加密的算法有较好的安全性,在国内如寿信的安全支付平台就采用此算法. 源代码如下/************************************************MD5 算法的Java BeanLast Modified:10,Mar,2001*************************************************/ import java.lang.reflect.*; /************

Java基础-Java语言的Socket类详细介绍

线性表,链表等是常用的数据结构,在进行Java开发时,JDK已经为我们提供了一系列相应的类来实现基本的数据结构.这些类均在java.util包中. Collection ├List │├LinkedList │├ArrayList │└Vector │ └Stack └Set Map ├Hashtable ├HashMap └WeakHashMap Collection接口 Collection是最基本的集合接口,一个Collection代表一组Object,即Collection的元素(Ele

详解java中的Collections类_java

一般来说课本上的数据结构包括数组.单链表.堆栈.树.图.我这里所指的数据结构,是一个怎么表示一个对象的问题,有时候,单单一个变量声明不堪大用,比如int,String,double甚至一维数组.二维数组无法完全表达你要表达的东西,而定义一个类Class有太过麻烦,这时候,你可以考虑一下用Java中的Collections类.使用Collections类,必须在文件头声明import java.util.*; 一.动态.有序.可变大小的一维数组Vector与ArrayList  Collectio

java中用集合写一个简单的登录功能。麻烦大家看一看

问题描述 java中用集合写一个简单的登录功能.麻烦大家看一看 //这是注册的方法 public static void reg(){ Collection id=new ArrayList();//账户 Collection passWord=new ArrayList();//密码 Scanner sc=new Scanner(System.in); System.out.println("请输入账号:"); id.add(sc.next()); System.out.printl

《Java特种兵》1.3 简单数字游戏玩一玩

1.3 简单数字游戏玩一玩 数字游戏没错就是玩数字游戏 Java怎么玩马上见证下 玩数字有什么用途呢我们不是虚拟数据给别人看而是通过玩数字转换让我们更了解计算机的数字运算也许数字运算可以有一些神奇的地方有些变态的问题也不是我们想的那么简单. 这里不讲基本的"四则运算"胖哥会讲一些运算符然后再讲讲"大数字"是如何处理的. 1.3.1 变量A.B交换有几种方式 胖哥认为有3种方法来实现变量交换其中一种最简单的方法就是定义一个变量C作为中间量来实现代码例子如下 int C

Java中反射的一个简单使用_java

简介 首先介绍一些不太实用的解释:JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法:对于任意一个对象,都能够调用它的任意方法和属性:这种动态获取信息以及动态调用对象方法的功能称为java语言的反射机制. 简单使用 反射,在java中是非常常见和好用的一种方式,(但是大家需要知道,他的效率是比较低的,所以要慎用)当然在基于java语言而产生的Android中也是可以使用的,我们可以使用反射来获取一些系统并不开放,但是存在的类,从而调用他的一些方法,下面就简单的写一下