Java 使用Robot類模擬鼠標、鍵盤事件



Robot類用於模擬鼠標、鍵盤事件,生成本機系統輸入事件。Robot 的主要用於自動化、自運行的程序和其他需要自動控制鼠標和鍵盤的程序

相當於實際操作的效果,不僅僅只是生成對應的鼠標、鍵盤事件。
比如Robot.mouseMove() 將實際移動鼠標光標,而不是只生成鼠標移動事件。

實現的是本機的全局模擬,不僅僅局限於寫的程序和IDE

 


Robot類常用方法:

void delay (int ms) 睡眠指定的時間(類似於線程中sleep)

void keyPress(int keycode) 按下指定的鍵
void keyRelease(int keycode) 釋放指定的鍵

void mousePress(int buttons) 按下一個或多個鼠標按鍵
void mouseRelease(int buttons) 釋放一個活多個鼠標按鍵

void mouseMove(int x,int y) 將鼠標移動到給定的屏幕坐標上
void mouseWheel(int wheelAmt) 滾動鼠標滑輪

 

 

實例:

 1 package my_package;
 2 
 3 import java.awt.*;
 4 import java.awt.event.InputEvent;
 5 import java.awt.event.KeyEvent;
 6 
 7 
 8 /**
 9  * 利用Robot實現自動清屏
10  */
11 public class Test {
12     public static void main(String[] args) throws AWTException {
13         System.out.println("ok");
14         Robot robot = new Robot();
15 
16         //將鼠標移到控制台區域
17         robot.mouseMove(300,600);
18 
19         //單擊右鍵
20         robot.mousePress(InputEvent.BUTTON3_DOWN_MASK);
21         robot.mouseRelease(InputEvent.BUTTON3_DOWN_MASK);
22 
23         //按CTRL+小鍵盤的數字0,實現清屏。需要先設置清屏快捷鍵為Ctrl+小鍵盤的數字0
24         robot.keyPress(KeyEvent.VK_CONTROL);
25         robot.keyPress(KeyEvent.VK_NUMPAD0);
26         robot.keyRelease(KeyEvent.VK_NUMPAD0);
27         robot.keyRelease(KeyEvent.VK_CONTROL);
28 
29     }
30 
31 }

 

 1 package my_package;
 2 
 3 import java.awt.*;
 4 import java.awt.event.KeyEvent;
 5 
 6 /**
 7  * 利用Robot類實現自動返回桌面(Win+D)
 8  */
 9 public class Test2 {
10     public static void main(String[] args) throws AWTException {
11         Robot robot=new Robot();
12         robot.keyPress(KeyEvent.VK_WINDOWS);
13         robot.keyPress(KeyEvent.VK_D);
14         robot.keyRelease(KeyEvent.VK_D);
15         robot.keyRelease(KeyEvent.VK_WINDOWS);
16     }
17 }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM