Java中類比滑鼠和鍵盤輸入

來源:互聯網
上載者:User
從jdk1.3開始,提供了一個Robot類,在java.awt.*包下面。這個類在jdk中描述如下:

此類用於為測試自動化、自運行示範程式和其他需要控制滑鼠和鍵盤的應用程式產生本機系統輸入事件。Robot 的主要目的是便於 Java 平台實現自動化的測試。 

使用該類產生輸入事件與將事件發送到 AWT 事件隊列或 AWT 組件的區別在於:事件是在平台的本機輸入隊列中產生的。例如,Robot.mouseMove 將實際移動滑鼠游標,而不是只產生滑鼠移動事件。 

注意,某些平台需要特定許可權或擴充來訪問低級輸入控制項。如果當前平台配置不允許使用輸入控制項,那麼試圖構造 Robot 對象時將拋出 AWTException。例如,如果 X 伺服器不支援(或沒有啟用)XTEST 2.2 標準擴充,則 X-Window 系統會拋出異常。 

出於自測試之外的目的而使用 Robot 的應用程式應妥善處理這些錯誤條件。 


這個類除了類比滑鼠鍵盤操作以外,還可以用來截取螢幕,只示範一下怎麼類比滑鼠鍵盤操作,具體api參考javadoc。這個示範完成了彈出QQ和移動視窗的功能。代碼如下:

import java.awt.AWTException;
import java.awt.Robot;
import java.awt.event.KeyEvent;
/** *//**
* @author bean

*/
public class RobotDemo ...{

private Robot robot = null;

public RobotDemo() ...{
   try ...{
    robot = new Robot();
   } catch (AWTException e) ...{
    e.printStackTrace();
   }
}
/** *//** 可以彈出QQ */
public void keyBoardDemo() ...{
   robot.keyPress(KeyEvent.VK_ALT);
   robot.keyPress(KeyEvent.VK_CONTROL);
   robot.keyPress(KeyEvent.VK_Z);
   robot.keyRelease(KeyEvent.VK_Z);
   robot.keyRelease(KeyEvent.VK_CONTROL);
   robot.keyRelease(KeyEvent.VK_ALT);
}
/** *//** 前提是有個最大化的視窗,功能是移動到標題列,然後拖拽到600,600的位置*/
public void mouseDemo()...{
   robot.mouseMove(80, 10);
   robot.mousePress(KeyEvent.BUTTON1_MASK);
   try ...{
    Thread.sleep(20);
   } catch (InterruptedException e) ...{
    e.printStackTrace();
   }
   robot.mouseMove(600, 600);
   robot.mouseRelease(KeyEvent.BUTTON1_MASK);
}
/** *//**
   * @param args
   */
public static void main(String[] args) ...{
   RobotDemo demo=new RobotDemo();
   demo.keyBoardDemo();
   demo.mouseDemo();
}

}

 
 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.