日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

如何用Java的Robot完成模拟鼠标移动和键盘输入(可应用刷网课)

發布時間:2023/12/31 java 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 如何用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完成模拟鼠标移动和键盘输入(可应用刷网课)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。