Java中模拟鼠标和键盘输入

从jdk1.3开始,提供了一个Robot类,在java.awt. * 包下面。这个类在jdk中描述如下:

此类用于为测试自动化、自运行演示程序和其他需要控制鼠标和键盘的应用程序生成本机系统输入事件。Robot的主要目的是便于Java平台实现自动测试。

使用该类生成输入事件与将事件发送到AWT事件队列或AWT组件的区别在于:事件是在平台的本机输入队列中生成的。例如,Robot.mouseMove将实际移动鼠标光标,而不是只生成鼠标移动事件。

注意,某些平台需要特定权限或扩展来访问低级输入控件。如果当前平台配置不允许使用输入控件,那么试图构造Robot对象时将抛出AWTException。例如,如果X服务器不支持(或没有启用)XTEST
2.2 标准扩展,则X - Window系统会抛出异常。

出于自测试之外的目的而使用Robot的应用程序应妥善处理这些错误条件。


这个类除了模拟鼠标键盘操作以外,还可以用来截取屏幕,只演示一下怎么模拟鼠标键盘操作,具体api参考javadoc。这个演示完成了弹出QQ和移动窗口的功能。代码如下:

import java.awt.AWTException;
import java.awt.Robot;
import java.awt.event.KeyEvent;
/***/ /**
*
@authorbean
*
*/

public class RobotDemo ... {

privateRobotrobot=null;

publicRobotDemo()...{
try...{
robot
=newRobot();
}
catch(AWTExceptione)...{
e.printStackTrace();
}

}

/***//**可以弹出QQ*/
publicvoidkeyBoardDemo()...{
robot.keyPress(KeyEvent.VK_ALT);
robot.keyPress(KeyEvent.VK_CONTROL);
robot.keyPress(KeyEvent.VK_Z);
robot.keyRelease(KeyEvent.VK_Z);
robot.keyRelease(KeyEvent.VK_CONTROL);
robot.keyRelease(KeyEvent.VK_ALT);
}

/***//**前提是有个最大化的窗口,功能是移动到标题栏,然后拖拽到600,600的位置*/
publicvoidmouseDemo()...{
robot.mouseMove(
80,10);
robot.mousePress(KeyEvent.BUTTON1_MASK);
try...{
Thread.sleep(
20);
}
catch(InterruptedExceptione)...{
e.printStackTrace();
}

robot.mouseMove(
600,600);
robot.mouseRelease(KeyEvent.BUTTON1_MASK);
}

/***//**
*
@paramargs
*/

publicstaticvoidmain(String[]args)...{
RobotDemodemo
=newRobotDemo();
demo.keyBoardDemo();
demo.mouseDemo();
}


}



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值