程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> JAVA編程入門知識 >> Java中用Robot類控制鼠標和鍵盤的方法

Java中用Robot類控制鼠標和鍵盤的方法

編輯:JAVA編程入門知識

  
  Java.awt.Robot 類用於控制鼠標和鍵盤。一旦你得到這種控制,你能夠通過你的Java代碼做與鼠標和鍵盤任何類型的操作。這個類通常用於自動化測試。下面的代碼樣例將向您展示Robot類如何處理鍵盤事件。如果你運行此代碼,並打開notepad,您將在notepad中看到HI CAOER.趕快試一試吧。

  
  import java.awt.AWTException;
  import java.awt.Robot;
  import java.awt.event.KeyEvent;
  public class RobotExp {
  public static void main(String[] args) {
  try {
  Robot robot = new Robot();
  //定義5秒的延遲以便你打開notepad
  // Robot 開始寫
  robot.delay(5000);
  robot.keyPress(KeyEvent.VK_H);
  robot.keyPress(KeyEvent.VK_I);
  robot.keyPress(KeyEvent.VK_SPACE);
  robot.keyPress(KeyEvent.VK_C);
  robot.keyPress(KeyEvent.VK_A);
  robot.keyPress(KeyEvent.VK_O);
  robot.keyPress(KeyEvent.VK_E);
  robot.keyPress(KeyEvent.VK_R);
  } catch (AWTException e) {
  e.printStackTrace();
  }
  }
  }

  網友完善了以上代碼:

  
  import java.awt.AWTException;
  import java.awt.Robot;
  import java.awt.event.KeyEvent;
  import java.io.IOException;

  public class RobotExp {
  public static void pressKey(Robot robot, int keyvalue) {
  robot.keyPress(keyvalue);
  robot.keyRelease(keyvalue);
  }
  public static void pressKeyWithShift(Robot robot, int keyvalue) {
  robot.keyPress(KeyEvent.VK_SHIFT);
  robot.keyPress(keyvalue);
  robot.keyRelease(keyvalue);
  robot.keyRelease(KeyEvent.VK_SHIFT);
  }
  public static void closeApplication(Robot robot) {
  // pressKey(robot, KeyEvent.VK_ALT);
  // pressKey(robot, KeyEvent.VK_F4);
  robot.keyPress(KeyEvent.VK_ALT);
  robot.keyPress(KeyEvent.VK_F4);
  robot.keyRelease(KeyEvent.VK_ALT);
  robot.keyRelease(KeyEvent.VK_F4);
  //for linux.
  // robot.keyPress(KeyEvent.VK_ALT);
  // robot.keyPress(KeyEvent.VK_W);
  // robot.keyRelease(KeyEvent.VK_ALT);
  // robot.keyRelease(KeyEvent.VK_W);
  robot.keyPress(KeyEvent.VK_N);
  robot.keyRelease(KeyEvent.VK_N);
  }
  public static void main(String[] args) throws IOException {
  try {
  Robot robot = new Robot();
  Runtime.getRuntime().exec("notepad");
  // For linux.
  //Runtime.getRuntime().exec("gedit");
  //定義5秒的延遲以便你打開notepad 哈哈
  // Robot 開始寫
  robot.delay(3000);
  for (int i = 0; i < 100; i++) {
  pressKeyWithShift(robot, KeyEvent.VK_H);
  pressKey(robot, KeyEvent.VK_I);
  pressKey(robot, KeyEvent.VK_SPACE);
  //pressKeyWithShift(robot, KeyEvent.VK_H);
  pressKeyWithShift(robot, KeyEvent.VK_I);
  pressKey(robot, KeyEvent.VK_SPACE);
  pressKey(robot, KeyEvent.VK_A);
  pressKey(robot, KeyEvent.VK_M);
  pressKey(robot, KeyEvent.VK_SPACE);
  pressKey(robot, KeyEvent.VK_T);
  pressKey(robot, KeyEvent.VK_H);
  pressKey(robot, KeyEvent.VK_E);
  pressKey(robot, KeyEvent.VK_SPACE);
  pressKey(robot, KeyEvent.VK_J);
  pressKey(robot, KeyEvent.VK_A);
  pressKey(robot, KeyEvent.VK_V);
  pressKey(robot, KeyEvent.VK_A);
  pressKey(robot, KeyEvent.VK_SPACE);
  pressKey(robot, KeyEvent.VK_R);
  pressKey(robot, KeyEvent.VK_O);
  pressKey(robot, KeyEvent.VK_B);
  pressKey(robot, KeyEvent.VK_O);
  pressKey(robot, KeyEvent.VK_T);
  // VK_ENTER
  pressKey(robot, KeyEvent.VK_ENTER);
  //pressKey(robot, KeyEvent.);
  }
  closeApplication(robot);
  //robot.keyPress(KeyEvent.VK_SPACE);
  } catch (AWTException e) {
  e.printStackTrace();
  }
  }
  }
  

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved