热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

JAVA有没有比robot更好用的_使用Java/Python提高工作效率01JavaRobot类

用Java实现可重复性的鼠标键盘事件--Robot类的使用Robot类的定义:构建Robot()在初始屏幕的坐标系上构建一个Robot类ConstructsaRobo

用Java实现可重复性的鼠标键盘事件--Robot类的使用

Robot类的定义:

构建

Robot() // 在初始屏幕的坐标系上构建一个Robot类

Constructs a Robot object in the coordinate system of the primary screen.

Robot(GraphicsDevice screen) // 在特定屏幕上创建

Creates a Robot for the given screen device.

方法总结

返回值和返回类型

方法

描述

BufferedImage

createScreenCapture(Rectangle screenRect)

创建包含从屏幕读取的像素的图像。

void

delay(int ms)

特定时间段休眠时间

int

getAutoDelay()

返回执行某一事件后Robot的休眠时间

Color

getPixelColor(int x, int y)

返回当前坐标值的像素颜色

boolean

isAutoWaitForIdle()

返回此机器人在生成事件后是否自动调用waitForIdle

void

keyPress(int keycode)

模拟按下键盘按键

void

keyRelease(int keycode)

模拟释放键盘按键

void

mousePress(int buttons)

模拟按下鼠标按钮

void

mouseRelease(int buttons)

模拟释放鼠标按钮

void

mouseWheel(int wheelAmt)

模拟鼠标滚轮事件

void

setAutoDelay(int ms)

设置此Robot在生成事件后休眠的毫秒数

void

setAutoWaitForIdle(boolean isOn)

设置此机器人在生成事件后是否自动调用waitForIdle

String

toString()

返回此Robot的字符串表示形式

void

waitForIdle()

等待直到事件队列上当前的所有事件都已处理

案例

键盘事件,模拟打字

public class Keyboard {

public static void main(String[] a) throws AWTException{

System.out.print("Hello World");

Robot robot = new Robot();

robot.delay(5000);

robot.keyPress(KeyEvent.VK_H);

robot.keyPress(KeyEvent.VK_E);

robot.keyPress(KeyEvent.VK_L);

robot.keyRelease(KeyEvent.VK_L);

robot.keyPress(KeyEvent.VK_L);

robot.keyPress(KeyEvent.VK_O);

robot.keyPress(KeyEvent.VK_SPACE);

robot.keyPress(KeyEvent.VK_W);

robot.keyPress(KeyEvent.VK_O);

robot.keyPress(KeyEvent.VK_R);

robot.keyPress(KeyEvent.VK_L);

robot.keyPress(KeyEvent.VK_D);

robot.delay(100);

robot.keyPress(KeyEvent.VK_ENTER);

}

}

鼠标事件,模拟鼠标来回移动

public class Mouse {

public static void main(String[] args) throws AWTException{

System.out.print("Mouse Move");

Robot robot = new Robot();

robot.delay(1000);

int y = 500;

int n = 0;

do {

for(int x&#61;0; x<3840; x&#43;&#43;) {

robot.mouseMove(x, y);

}

for(int x&#61;0; x<3840; x&#43;&#43;) {

robot.mouseMove(3840- x, y);

}

n&#43;&#43;;

}while(n<50);

}

}



推荐阅读
  • Java太阳系小游戏分析和源码详解
    本文介绍了一个基于Java的太阳系小游戏的分析和源码详解。通过对面向对象的知识的学习和实践,作者实现了太阳系各行星绕太阳转的效果。文章详细介绍了游戏的设计思路和源码结构,包括工具类、常量、图片加载、面板等。通过这个小游戏的制作,读者可以巩固和应用所学的知识,如类的继承、方法的重载与重写、多态和封装等。 ... [详细]
  • Iamtryingtomakeaclassthatwillreadatextfileofnamesintoanarray,thenreturnthatarra ... [详细]
  • 开发笔记:加密&json&StringIO模块&BytesIO模块
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了加密&json&StringIO模块&BytesIO模块相关的知识,希望对你有一定的参考价值。一、加密加密 ... [详细]
  • Java容器中的compareto方法排序原理解析
    本文从源码解析Java容器中的compareto方法的排序原理,讲解了在使用数组存储数据时的限制以及存储效率的问题。同时提到了Redis的五大数据结构和list、set等知识点,回忆了作者大学时代的Java学习经历。文章以作者做的思维导图作为目录,展示了整个讲解过程。 ... [详细]
  • 本文讨论了一个关于cuowu类的问题,作者在使用cuowu类时遇到了错误提示和使用AdjustmentListener的问题。文章提供了16个解决方案,并给出了两个可能导致错误的原因。 ... [详细]
  • 个人学习使用:谨慎参考1Client类importcom.thoughtworks.gauge.Step;importcom.thoughtworks.gauge.T ... [详细]
  • 本文介绍了Python爬虫技术基础篇面向对象高级编程(中)中的多重继承概念。通过继承,子类可以扩展父类的功能。文章以动物类层次的设计为例,讨论了按照不同分类方式设计类层次的复杂性和多重继承的优势。最后给出了哺乳动物和鸟类的设计示例,以及能跑、能飞、宠物类和非宠物类的增加对类数量的影响。 ... [详细]
  • 本文介绍了Swing组件的用法,重点讲解了图标接口的定义和创建方法。图标接口用来将图标与各种组件相关联,可以是简单的绘画或使用磁盘上的GIF格式图像。文章详细介绍了图标接口的属性和绘制方法,并给出了一个菱形图标的实现示例。该示例可以配置图标的尺寸、颜色和填充状态。 ... [详细]
  • 重入锁(ReentrantLock)学习及实现原理
    本文介绍了重入锁(ReentrantLock)的学习及实现原理。在学习synchronized的基础上,重入锁提供了更多的灵活性和功能。文章详细介绍了重入锁的特性、使用方法和实现原理,并提供了类图和测试代码供读者参考。重入锁支持重入和公平与非公平两种实现方式,通过对比和分析,读者可以更好地理解和应用重入锁。 ... [详细]
  • 向QTextEdit拖放文件的方法及实现步骤
    本文介绍了在使用QTextEdit时如何实现拖放文件的功能,包括相关的方法和实现步骤。通过重写dragEnterEvent和dropEvent函数,并结合QMimeData和QUrl等类,可以轻松实现向QTextEdit拖放文件的功能。详细的代码实现和说明可以参考本文提供的示例代码。 ... [详细]
  • 本文介绍了OC学习笔记中的@property和@synthesize,包括属性的定义和合成的使用方法。通过示例代码详细讲解了@property和@synthesize的作用和用法。 ... [详细]
  • Python语法上的区别及注意事项
    本文介绍了Python2x和Python3x在语法上的区别,包括print语句的变化、除法运算结果的不同、raw_input函数的替代、class写法的变化等。同时还介绍了Python脚本的解释程序的指定方法,以及在不同版本的Python中如何执行脚本。对于想要学习Python的人来说,本文提供了一些注意事项和技巧。 ... [详细]
  • JavaSE笔试题-接口、抽象类、多态等问题解答
    本文解答了JavaSE笔试题中关于接口、抽象类、多态等问题。包括Math类的取整数方法、接口是否可继承、抽象类是否可实现接口、抽象类是否可继承具体类、抽象类中是否可以有静态main方法等问题。同时介绍了面向对象的特征,以及Java中实现多态的机制。 ... [详细]
  • 本文详细介绍了Java中vector的使用方法和相关知识,包括vector类的功能、构造方法和使用注意事项。通过使用vector类,可以方便地实现动态数组的功能,并且可以随意插入不同类型的对象,进行查找、插入和删除操作。这篇文章对于需要频繁进行查找、插入和删除操作的情况下,使用vector类是一个很好的选择。 ... [详细]
  • 本文讨论了在VMWARE5.1的虚拟服务器Windows Server 2008R2上安装oracle 10g客户端时出现的问题,并提供了解决方法。错误日志显示了异常访问违例,通过分析日志中的问题帧,找到了解决问题的线索。文章详细介绍了解决方法,帮助读者顺利安装oracle 10g客户端。 ... [详细]
author-avatar
吉祥话如意
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有