HelloWorld 善戰(zhàn)者,求之于勢,不責(zé)于人;故能擇人而任勢。

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

            BlogJava :: 首頁 ::  :: 聯(lián)系 ::  :: 管理 ::
            167 隨筆 :: 1 文章 :: 40 評論 :: 0 Trackbacks
          提供了一個Robot類,在java.awt.*包下面。這個類在jdk中描述如下:

          此類用于為測試自動化、自運(yùn)行演示程序和其他需要控制鼠標(biāo)和鍵盤的應(yīng)用程序生成本機(jī)系統(tǒng)輸入事件。Robot 的主要目的是便于 Java 平臺實(shí)現(xiàn)自動測試。

          使用該類生成輸入事件與將事件發(fā)送到 AWT 事件隊(duì)列或 AWT 組件的區(qū)別在于:事件是在平臺的本機(jī)輸入隊(duì)列中生成的。例如,Robot.mouseMove 將實(shí)際移動鼠標(biāo)光標(biāo),而不是只生成鼠標(biāo)移動事件。

          注意,某些平臺需要特定權(quán)限或擴(kuò)展來訪問低級輸入控件。如果當(dāng)前平臺配置不允許使用輸入控件,那么試圖構(gòu)造 Robot 對象時將拋出 AWTException。例如,如果 X 服務(wù)器不支持(或沒有啟用)XTEST 2.2 標(biāo)準(zhǔn)擴(kuò)展,則 X-Window 系統(tǒng)會拋出異常。

          出于自測試之外的目的而使用 Robot 的應(yīng)用程序應(yīng)妥善處理這些錯誤條件。


          這個類除了模擬鼠標(biāo)鍵盤操作以外,還可以用來截取屏幕,只演示一下怎么模擬鼠標(biāo)鍵盤操作,具體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);
          }
          /** 前提是有個最大化的窗口,功能是移動到標(biāo)題欄,然后拖拽到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 閱讀(385) 評論(0)  編輯  收藏 所屬分類: java
          主站蜘蛛池模板: 顺平县| 抚远县| 绥化市| 峨边| 英吉沙县| 峨山| 炎陵县| 鹤山市| 西吉县| 南陵县| 察雅县| 秦安县| 伊春市| 桦川县| 康平县| 安义县| 泰和县| 龙游县| 忻州市| 天柱县| 城口县| 茂名市| 濉溪县| 轮台县| 惠来县| 大洼县| SHOW| 驻马店市| 准格尔旗| 马尔康县| 江山市| 蓝田县| 襄汾县| 喜德县| 沙雅县| 清苑县| 安国市| 杭锦后旗| 石阡县| 汶川县| 喀喇|