javaawt中的Robot类

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. 

图片[1]-javaawt中的Robot类-yiteyi-C++库

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
喜欢就支持一下吧
点赞6 分享