java 打字机

打字机

向当前获得焦点的界面发出一系列键盘事件进行打字(英文输入)
在这里插入图片描述

java 代码


package myrobot;

import java.awt.AWTException;
import java.awt.Robot;
import java.awt.event.KeyEvent;

public class RobotTest
{
    public static void main(String[] args) throws AWTException
    {
	    //一个机器人
        Robot robot = new Robot();
        //一个击键动作后的休眠时间
        robot.setAutoDelay(100);
        //等待5秒
        try {
			Thread.sleep(5000);
		} catch (InterruptedException e) {
			System.out.printf("sleep!");
		}
        String str="I'm Robot.\n I can type.\n"
        		+ "And make no mistakes.\n"
        		+ "If you don't believe it, \n"
        		+ "\"Let's go\" \n";
        for(int i=0;i<str.length();i++)
        {
        	//字符转换 KeyEvent.VK_A至 KeyEvent.VK_Z(65~90)
        	if(str.charAt(i)>=97&&str.charAt(i)<=122) {
                robot.keyPress(str.charAt(i)-32);
                robot.keyRelease(str.charAt(i)-32);
        	}else if(str.charAt(i)>=65&&str.charAt(i)<=90) {
                  robot.keyPress(str.charAt(i));
                  robot.keyRelease(str.charAt(i));
          	}else if(str.charAt(i)==',') {//逗号
                robot.keyPress(KeyEvent.VK_COMMA);
                robot.keyRelease(KeyEvent.VK_COMMA);
        	}else if(str.charAt(i)=='.') {//句号
                robot.keyPress('.');
                robot.keyRelease('.');
                System.out.println("单击"+(int)str.charAt(i));
        	}else if(str.charAt(i)=='\'') {//单引号,需转义
                robot.keyPress(KeyEvent.VK_QUOTE);
                robot.keyRelease(KeyEvent.VK_QUOTE);
        	}else if(str.charAt(i)=='\n') {//换行符
                robot.keyPress('\n');
                robot.keyRelease('\n');
        	}else if(str.charAt(i)=='"') {
        		//双引号  虽然有定义KeyEvent.VK_QUOTEDBL
        		//但它是KeyEvent.VK_QUOTE与KeyEvent.VK_SHIFT组合
                robot.keyPress(KeyEvent.VK_SHIFT);
                robot.keyPress(KeyEvent.VK_QUOTE);
                robot.keyRelease(KeyEvent.VK_QUOTE);
                robot.keyRelease(KeyEvent.VK_SHIFT);
                
        	}else {
                robot.keyPress(KeyEvent.VK_SPACE);
                robot.keyRelease(KeyEvent.VK_SPACE);
        	}
        }

    }
}

猜你喜欢

转载自blog.csdn.net/qq_39464369/article/details/88714455