关闭

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

发表于:2013-11-06 09:21

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:yuanbbt40    来源:51Testing软件测试网采编

/**
*         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);
}
}
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号