Java中用Robot类控制鼠标和键盘的方法

Java.awt.Robot 类用于控制鼠标和键盘。一旦你获得这种控制,你可以经过你的Java代码作与鼠标和键盘任何类型的操做。这个类一般用于自动化测试。下面的代码样例将向您展现Robot类如何处理键盘事件。若是你运行此代码,并打开notepad,您将在notepad中看到HI CAOERjava

package test;
import java.awt.AWTException;
import java.awt.Robot;
import java.awt.event.KeyEvent;
import java.io.IOException;
/**
 * 
 * @time  2012/05/07
 * @author  SUN
 * Robot 自动化
 */
public class RobotExp {
	public static void pressKey(Robot robot, int keyvalue) {
		robot.keyPress(keyvalue);
		robot.keyRelease(keyvalue);
	}
	public static void pressKeyWithShift(Robot robot, int keyvalue) {
		robot.keyPress(KeyEvent.VK_SHIFT);
		robot.keyPress(keyvalue);
		robot.keyRelease(keyvalue);
		robot.keyRelease(KeyEvent.VK_SHIFT);
	}
	public static void closeApplication(Robot robot) {
		// pressKey(robot, KeyEvent.VK_ALT);
		// pressKey(robot, KeyEvent.VK_F4);
		robot.keyPress(KeyEvent.VK_ALT);
		robot.keyPress(KeyEvent.VK_F4);
		robot.keyRelease(KeyEvent.VK_ALT);
		robot.keyRelease(KeyEvent.VK_F4);
		//for linux.
		// robot.keyPress(KeyEvent.VK_ALT);
		// robot.keyPress(KeyEvent.VK_W);
		// robot.keyRelease(KeyEvent.VK_ALT);
		// robot.keyRelease(KeyEvent.VK_W);
		robot.keyPress(KeyEvent.VK_N);
		robot.keyRelease(KeyEvent.VK_N);
	}
	public static void main(String[] args) throws IOException {
		try {
			Robot robot = new Robot();
			Runtime.getRuntime().exec("notepad");
			// For linux.
			//Runtime.getRuntime().exec("gedit");
			//定义3秒的延迟以便你打开notepad 哈哈
			// Robot 开始写
			robot.delay(3000);
			for (int i = 0; i < 10; i++) {//输出10句下面的字母   操做键盘键
				pressKeyWithShift(robot, KeyEvent.VK_H);
				pressKey(robot, KeyEvent.VK_I);
				pressKey(robot, KeyEvent.VK_SPACE);
				//pressKeyWithShift(robot, KeyEvent.VK_H);
				pressKeyWithShift(robot, KeyEvent.VK_I);
				pressKey(robot, KeyEvent.VK_SPACE);
				pressKey(robot, KeyEvent.VK_A);
				pressKey(robot, KeyEvent.VK_M);
				pressKey(robot, KeyEvent.VK_SPACE);
				pressKey(robot, KeyEvent.VK_T);
				pressKey(robot, KeyEvent.VK_H);
				pressKey(robot, KeyEvent.VK_E);
				pressKey(robot, KeyEvent.VK_SPACE);
				pressKey(robot, KeyEvent.VK_J);
				pressKey(robot, KeyEvent.VK_A);
				pressKey(robot, KeyEvent.VK_V);
				pressKey(robot, KeyEvent.VK_A);
				pressKey(robot, KeyEvent.VK_SPACE);
				pressKey(robot, KeyEvent.VK_R);
				pressKey(robot, KeyEvent.VK_O);
				pressKey(robot, KeyEvent.VK_B);
				pressKey(robot, KeyEvent.VK_O);
				pressKey(robot, KeyEvent.VK_T);
				// VK_ENTER
				pressKey(robot, KeyEvent.VK_ENTER);
				//pressKey(robot, KeyEvent.);
			}
			closeApplication(robot);
			//robot.keyPress(KeyEvent.VK_SPACE);
		} catch (AWTException e) {
			e.printStackTrace();
		}
	}
}
相关文章
相关标签/搜索