java robot 机器人自动化,实现记事本自动输入自己的备忘录
Posted 洛阳泰山
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java robot 机器人自动化,实现记事本自动输入自己的备忘录相关的知识,希望对你有一定的参考价值。
我正在参与CSDN《新程序员》有奖征文,活动地址
https://marketing.csdn.net/p/52c37904f6e1b69dc392234fff425442
正言
最近粉丝停止增长,博主慌了一逼,赶紧写篇文章,活跃一下,求各位多多关注!!!
最近工作也有些变动,时间不像以前那么充裕了,一时之间,也不知道写点什么好,本来还想继续写java视频处理的文章和代码,后来想想有点费时间,于是就对自己以前做java robot自动化方面的一点研究的代码,分享出来,共大家学习。毕竟java做自动化的文章相对与做web的文章少太多了。
切入正题,代码主要用到都是java.awt.Robot包下的代码方法实现的,不需要引入第三饭jar。只需要安装好jdk即可。
核心代码单类实现,复制到idea等编辑器里,主方法运行即可。
import java.awt.Robot;
import java.awt.Toolkit;
import java.awt.datatransfer.Clipboard;
import java.awt.datatransfer.StringSelection;
import java.awt.datatransfer.Transferable;
import java.awt.event.KeyEvent;
import java.text.SimpleDateFormat;
import java.util.Date;
/**
* Java小机器人打开记事本自己输入文字
* @author Wayss
*
*/
public class TestInput {
public static void main(String[] args) throws Exception {
Robot robot = new Robot();
//调用系统方法打开记事本
Runtime.getRuntime().exec("notepad");
robot.delay(2000);
//全屏显示
// keyPressWithAlt(robot,KeyEvent.VK_SPACE);
//输入x
//keyPress(robot, KeyEvent.VK_X);
//输入回车
keyPress(robot, KeyEvent.VK_ENTER);
robot.delay(1000);
//输入字符串
Date date=new Date();
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String text="王思聪语录 \\n "
+"宝,我去输入液了,输的什么液,想你的夜。\\n"
+"你都不知道心疼人的 \\n"
+"被一个人牵动的情绪很烦,但是也可以很甜蜜。\\n";
keyPressString(robot, text+"\\n 日期:"+ sdf.format(date));
}
//Shift组合键
public static void keyPressWithShift(Robot r, int key) {
//按下Shift
r.keyPress(KeyEvent.VK_SHIFT);
//按下某个键
r.keyPress(key);
//释放某个键
r.keyRelease(key);
//释放Shift
r.keyRelease(KeyEvent.VK_SHIFT);
//等待100ms
r.delay(100);
}
//Ctrl组合键
public static void keyPressWithCtrl(Robot r, int key) {
r.keyPress(KeyEvent.VK_CONTROL);
r.keyPress(key);
r.keyRelease(key);
r.keyRelease(KeyEvent.VK_CONTROL);
r.delay(100);
}
//Ctrl组合键
public static void keyPressWithCtrl(Robot r, int key1,int key2) {
r.keyPress(KeyEvent.VK_CONTROL);
r.keyPress(key1);
r.keyPress(key2);
r.keyRelease(key2);
r.keyRelease(key1);
r.keyRelease(KeyEvent.VK_CONTROL);
r.delay(100);
}
//Alt组合键
public static void keyPressWithAlt(Robot r, int key) {
r.keyPress(KeyEvent.VK_ALT);
r.keyPress(key);
r.keyRelease(key);
r.keyRelease(KeyEvent.VK_ALT);
r.delay(100);
}
//Alt组合键
public static void keyPressWithAlt(Robot r, int key1,int key2) {
r.keyPress(KeyEvent.VK_ALT);
r.keyPress(key1);
r.keyPress(key2);
r.keyRelease(key2);
r.keyRelease(key1);
r.keyRelease(KeyEvent.VK_ALT);
r.delay(100);
}
//输入字符串
public static void keyPressString(Robot r, String str) {
//获取剪切板
Clipboard clip = Toolkit.getDefaultToolkit().getSystemClipboard();
//将传入字符串封装下
Transferable tText = new StringSelection(str);
//将字符串放入剪切板
clip.setContents(tText, null);
//按下Ctrl+V实现粘贴文本
keyPressWithCtrl(r, KeyEvent.VK_V);
r.delay(100);
}
//输入数字
public static void keyPressNumber(Robot r, int number) {
//将数字转成字符串
String str = Integer.toString(number);
//调用字符串的方法
keyPressString(r, str);
}
//实现按一次某个按键
public static void keyPress(Robot r, int key) {
//按下键
r.keyPress(key);
//释放键
r.keyRelease(key);
r.delay(1000);
}
//快速打开QQ消息(这个组合键因人而异)
public static void keyPressAtlWithCtrlWithZ(Robot r) {
r.keyPress(KeyEvent.VK_ALT);
r.keyPress(KeyEvent.VK_CONTROL);
r.keyPress(KeyEvent.VK_Z);
r.keyRelease(KeyEvent.VK_Z);
r.keyRelease(KeyEvent.VK_CONTROL);
r.keyRelease(KeyEvent.VK_ALT);
}
//点击一下鼠标左键
public static void mouseLeftHit(Robot r) {
r.mousePress(KeyEvent.BUTTON1_DOWN_MASK);
r.mouseRelease(KeyEvent.BUTTON1_DOWN_MASK);
r.delay(1000);
}
}
代码中封装了不少的方法,比如鼠标点击、双击、长按,键盘按键方法,组合按键的方法。
运行结果图示
这个教程虽然简单,却能让你学会,java 控制鼠标键盘的大部分操作代码,后续自由发挥,以此为基础,写一些简单的游戏代练脚本,也是可以实现的。
加油!打工人!!!
以上是关于java robot 机器人自动化,实现记事本自动输入自己的备忘录的主要内容,如果未能解决你的问题,请参考以下文章