[java学习]Java实现自动化Robot类简单应用

更新时间:2020-11-19    来源:php函数    手机版     字体:

【www.bbyears.com--php函数】

/**
     *         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);
    }
   

}

本文来源:http://www.bbyears.com/jiaocheng/111359.html