如何用Java的Robot完成模拟鼠标移动和键盘输入(可应用刷网课)
如何用Java的Robot完成模擬鼠標移動和鍵盤輸入
- 背景
- Robot的常用方法
- 設計邏輯
- 代碼
- 總結
背景
對于日常刷課每十分鐘點擊“繼續學習”的行為,想嘗試使用Java程序替代。
初步想法是讓鼠標移動到固定位置,每十分鐘進行點擊一次。
然后就發現了java的Robot類,覺得很神奇哈哈哈
Robot的常用方法
附上搜索api網站:
https://www.matools.com/api/java8
概述:此類用于生成本機系統輸入事件,用于測試自動化,自動運行演示和需要鼠標和鍵盤控制的其他應用程序。 Robot的主要目的是為了方便Java平臺實現的自動化測試。(自1.3版本以后使用)
1.首先你需要創建一個Robot
Robot robot = new Robot() //,記得捕捉可能會發生的異常常用的操作:
機器休眠,鼠標移動,鼠標點擊,鼠標釋放(松開),按鍵及按鍵釋放
由于robot的操作是異步的,最好在每個操作中添加一定的休眠時間,否則會打亂你預期的操作順序。
2.機器休眠:
robot.delay(int ms);3.鼠標移動:
robot.mouseMove(int x , int y);4.鼠標點擊:
robot.mousePress(int buttons) //InputEvent.BUTTON1_DOWN_MASK左鍵 //InputEvent.BUTTON2_DOWN_MASK中間鍵 //InputEvent.BUTTON3_DOWN_MASK右鍵5.鼠標釋放:
robot.mouseRelease(int buttons) //InputEvent.BUTTON1_DOWN_MASK左鍵 //InputEvent.BUTTON2_DOWN_MASK中間鍵 //InputEvent.BUTTON3_DOWN_MASK右鍵6.按鍵:
robot.keyPress(int keycode) //KeyEvent.VK_A A鍵7.按鍵釋放
robot.keyRelease(KeyEvent.VK_A) //KeyEvent.VK_A A鍵8.截圖功能
//Rectangle screenRect = new Rectangle(int width, int height); //可以利用微信截圖的方式找到坐標點 Rectangle screenRect = new Rectangle(int x, int y, int width, int height); BufferedImage image = robot.createScreenCapture(Rectangle screenRect) //獲取一個范圍內的圖片 //將截圖保存 public static void writeImageFile(BufferedImage bi) throws IOException {File outputfile = new File("saved.png");ImageIO.write(bi, "png", outputfile);}9.給定坐標的像素點顏色
Color color =robot.getPixelColor(int x, int y) //返回給定屏幕坐標處的像素顏色。設計邏輯
綜上運用
1.創建robot類
2.開局移動鼠標位置,找到“繼續學習”的坐標
3.點擊屏幕播放視頻
4.循環等待十分鐘后,繼續重復23操作
代碼
public class Lesson {static Robot robot;public static void main(String[] args) {try {robot = new Robot();//記得捕捉異常} catch (AWTException e) {e.printStackTrace();}for (int i=0;i<16;i++){robot.mouseMove(611,527);robot.delay(5000);//開局等5秒,用來切換到視頻頁面robot.mousePress(InputEvent.BUTTON1_DOWN_MASK);robot.delay(20);robot.mouseRelease(InputEvent.BUTTON1_DOWN_MASK);for (int q=0;q<10;q++){//等待十分鐘robot.delay(60000);}}} }總結
java的robot可以用來進行模擬鼠標移動點擊以及鍵盤的輸入等功能,加上一點就可以用在批量點擊,批量創建文件,微信的批量找點群發等事件上。
做出來的程序暫時只能在idea或者cmd的命令行窗口運行,后續在想能不能使用javafx做個窗口和打包成exe程序運行。
這里我用的獲取坐標的方式算是投機取巧了,看到point是可以獲取到坐標的,之后學習完在整理一下。
另外看到嗶哩嗶哩up主做的運用像素點通關游戲,挺有意思的,分享大家
附上鏈接:
https://www.bilibili.com/video/BV1GZ4y1P7zx
總結
以上是生活随笔為你收集整理的如何用Java的Robot完成模拟鼠标移动和键盘输入(可应用刷网课)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 非平稳时间序列突变检测 -- Berna
- 下一篇: 2021美赛总结(假)。预祝大家获得满意