HelloWorld 善戰者,求之于勢,不責于人;故能擇人而任勢。

          知止而后有定,定而后能靜,靜而后能安,安而后能慮,慮而后能得。物有本末,事有終始。知所先后,則近道矣。

            BlogJava :: 首頁 ::  :: 聯系 ::  :: 管理 ::
            167 隨筆 :: 1 文章 :: 40 評論 :: 0 Trackbacks
          <2011年6月>
          2930311234
          567891011
          12131415161718
          19202122232425
          262728293012
          3456789

          留言簿(5)

          隨筆分類(156)

          隨筆檔案(159)

          文章分類(1)

          相冊

          收藏夾(1)

          聯接技術類文章

          最新隨筆

          搜索

          最新評論

          提供了一個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();
          }

          }

          </script>

          posted on 2011-06-09 09:54 helloworld2008 閱讀(382) 評論(0)  編輯  收藏 所屬分類: java
          主站蜘蛛池模板: 江北区| 黎城县| 乌拉特前旗| 屏南县| 江油市| 西峡县| 五常市| 德钦县| 普兰县| 阿合奇县| 洞头县| 阳谷县| 绵竹市| 英山县| 南丰县| 康平县| 永靖县| 工布江达县| 海原县| 沙湾县| 松桃| 尖扎县| 平乡县| 潞西市| 湘潭市| 仙居县| 沽源县| 阿坝县| 嫩江县| 峨眉山市| 黄冈市| 囊谦县| 交城县| 临澧县| 新巴尔虎右旗| 油尖旺区| 荥阳市| 广东省| 富源县| 平泉县| 兴隆县|