Java AWT包中的Robot类用于生成本机系统输入事件,用于测试自动化、自动运行演示和其他需要控制鼠标和键盘的应用程序。Robot的主要目的是促进Java平台实现的自动化测试。简单来说,该类提供了对鼠标和键盘设备的控制。
null
下面是Robot类如何控制键盘并输入空白记事本文档的示例。记事本是使用进程和运行时调用的,如本文所述 文章 .
JAVA
// Java program to demonstrate working of Robot // class. This program is for Windows. It opens // notepad and types a message. import java.awt.AWTException; import java.awt.Robot; import java.awt.event.KeyEvent; import java.io.*; public class robo { public static void main(String[] args) throws IOException, AWTException, InterruptedException { String command = "notepad.exe" ; Runtime run = Runtime.getRuntime(); run.exec(command); try { Thread.sleep( 2000 ); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } // Create an instance of Robot class Robot robot = new Robot(); // Press keys using robot. A gap of // of 500 milli seconds is added after // every key press robot.keyPress(KeyEvent.VK_H); Thread.sleep( 500 ); robot.keyPress(KeyEvent.VK_E); Thread.sleep( 500 ); robot.keyPress(KeyEvent.VK_L); Thread.sleep( 500 ); robot.keyPress(KeyEvent.VK_L); Thread.sleep( 500 ); robot.keyPress(KeyEvent.VK_O); Thread.sleep( 500 ); robot.keyPress(KeyEvent.VK_SPACE); Thread.sleep( 500 ); robot.keyPress(KeyEvent.VK_F); Thread.sleep( 500 ); robot.keyPress(KeyEvent.VK_R); Thread.sleep( 500 ); robot.keyPress(KeyEvent.VK_O); Thread.sleep( 500 ); robot.keyPress(KeyEvent.VK_M); Thread.sleep( 500 ); robot.keyPress(KeyEvent.VK_SPACE); Thread.sleep( 500 ); robot.keyPress(KeyEvent.VK_G); Thread.sleep( 500 ); robot.keyPress(KeyEvent.VK_E); Thread.sleep( 500 ); robot.keyPress(KeyEvent.VK_E); Thread.sleep( 500 ); robot.keyPress(KeyEvent.VK_K); Thread.sleep( 500 ); robot.keyPress(KeyEvent.VK_S); Thread.sleep( 500 ); robot.keyPress(KeyEvent.VK_F); Thread.sleep( 500 ); robot.keyPress(KeyEvent.VK_O); Thread.sleep( 500 ); robot.keyPress(KeyEvent.VK_R); Thread.sleep( 500 ); robot.keyPress(KeyEvent.VK_G); Thread.sleep( 500 ); robot.keyPress(KeyEvent.VK_E); Thread.sleep( 500 ); robot.keyPress(KeyEvent.VK_E); Thread.sleep( 500 ); robot.keyPress(KeyEvent.VK_K); Thread.sleep( 500 ); robot.keyPress(KeyEvent.VK_S); } } |
输出:
The code opens a blank Notepad file and types "hello from geeksforgeeks" onto it with a delayof 500 ms before typing out each character.
Robot类的方法:
返回类型 | 方法 | 描述 |
---|---|---|
缓冲图像 | CreateScreateScreenCapture(矩形screenRect) | 创建包含从屏幕读取的像素的图像。 |
无效的 | 延迟(整数毫秒) | 在指定的时间睡觉。 |
智力 | getAutoDelay() | 返回生成事件后机器人睡眠的毫秒数。 |
颜色 | getPixelColor(整数x,整数y) | 返回给定屏幕坐标下像素的颜色。 |
布尔值 | isAutoWaitForIdle() | 返回此机器人是否在生成事件后自动调用waitForIdle。 |
无效的 | 按键(int keycode) | 按给定的键。 |
无效的 | 密钥释放(int-keycode) | 释放给定的密钥。 |
无效的 | 鼠标移动(整数x,整数y) | 将鼠标指针移动到给定的屏幕坐标。 |
无效的 | 鼠标按键(int按钮) | 按下一个或多个鼠标按钮。 |
无效的 | mouseRelease(int按钮) | 释放一个或多个鼠标按钮。 |
无效的 | 鼠标轮(int wheelAmt) | 在配备滚轮的鼠标上旋转滚轮。 |
无效的 | 设置自动延迟(整数毫秒) | 设置生成事件后机器人睡眠的毫秒数。 |
无效的 | setAutoWaitForIdle(布尔值) | 设置此机器人是否在生成事件后自动调用waitForIdle。 |
无效的 | waitForIdle() | 等待事件队列中当前的所有事件处理完毕。 |
参考资料:
- https://docs.oracle.com/javase/7/docs/api/java/awt/Robot.html
本文由 阿纳尼亚·尤博伊 .如果你喜欢GeekSforgek,并想贡献自己的力量,你也可以使用 写极客。组织 或者把你的文章寄去评论-team@geeksforgeeks.org.看到你的文章出现在Geeksforgeks主页上,并帮助其他极客。 如果您发现任何不正确的地方,或者您想分享有关上述主题的更多信息,请写下评论。
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END