java模拟键盘,鼠标操作

jopen 11年前

1.Java 模拟键盘输入的小Demo,实现自动按下:模拟Ctrl+Alt+Z的按下和抬起 
  如果你开着qq的话,那么qq会自动弹出来.哈哈,代替人工操作;

import java.awt.Robot;   import java.awt.event.KeyEvent;      public class RobotDemo   {       private Robot robot = null;              public RobotDemo()       {           try           {               robot = new Robot();           }           catch (AWTException e)           {               // TODO Auto-generated catch block               e.printStackTrace();           }       }              //模拟Ctrl+Alt+Z的按下和抬起       public void keyBoardDemo()       {           robot.keyPress(KeyEvent.VK_CONTROL);           robot.keyPress(KeyEvent.VK_ALT);           robot.keyPress(KeyEvent.VK_Z);           robot.keyRelease(KeyEvent.VK_CONTROL);           robot.keyRelease(KeyEvent.VK_ALT);           robot.keyRelease(KeyEvent.VK_Z);       }              public static void main(String[] args)       {           RobotDemo demo = new RobotDemo();           demo.keyBoardDemo();       }   }

-------------------------------------------------------------------------
2.试试java模拟 空格+Ctrl 按键。
按键的可以看看我的代码示例:
public class Rebot extends Robot {      String s3="";      public Rebot() throws AWTException {          super();      }        public void YiDong(int a, int b) {          this.mouseMove(a, b);      }        public void ZanTing(int time) {          try {              new Thread().sleep(time);          } catch (InterruptedException e) {              // TODO Auto-generated catch block              e.printStackTrace();          }      }        public void DianJi() {          this.mousePress(MouseEvent.BUTTON1_MASK);          this.mouseRelease(MouseEvent.BUTTON1_MASK);      }      public void HuiChe(){          this.keyPress(KeyEvent.VK_ENTER);          this.keyRelease(KeyEvent.VK_ENTER);      }  }

-------------------------------------------------------------------
4.Java中实现鼠标模拟与键盘映射
关键字: java 鼠标模拟 键盘映射
Java SDK 1.3以后实现了Robot类。此类用于为测试自动化、自运行演示程序和其他需要控制

鼠标和键盘的应用程序生成本机系统输入事件。Robot 的主要目的是便于 Java 平台实现自

动测试。
使用该类生成输入事件与将事件发送到 AWT 事件队列或 AWT 组件的区别在于:事件是在平

台的本机输入队列中生成的。例如,Robot.mouseMove 将实际移动鼠标光标,而不是只生成

鼠标移动事件。
Robot中主要的鼠标和键盘控制方法有:
•    void keyPress(int keycode) 按下给定的键。
•    void keyRelease(int keycode) 释放给定的键。
•    void mouseMove(int x, int y) 将鼠标指针移动到给定屏幕坐标。
•    void mousePress(int buttons) 按下一个或多个鼠标按钮。
•    void mouseRelease(int buttons) 释放一个或多个鼠标按钮。
•    void mouseWheel(int wheelAmt) 在配有滚轮的鼠标上旋转滚轮。
下面就让我们来实战鼠标控制,实现一个简单的鼠标控制程序MouseController。程序功能很

简单:随机移动鼠标并点击左键。
代码如下:
import java.awt.AWTException;  import java.awt.Dimension;  import java.awt.Robot;  import java.awt.Toolkit;  import java.awt.event.InputEvent;  import java.util.Random;    /**  *  * @author Xiaofeng Wang  */  public class MouseController implements Runnable {  private Dimension dim;  private Random rand;  private Robot robot;  private volatile boolean stop = false;  /** Creates a new instance of Main */  public MouseController() {  dim = Toolkit.getDefaultToolkit().getScreenSize();  rand = new Random();  try {  robot = new Robot();  } catch (AWTException ex) {  ex.printStackTrace();  }  }    public void run() {  while(!stop) {  int x = rand.nextInt(dim.width);  int y = rand.nextInt(dim.height);  robot.mouseMove(x, y);  robot.mousePress(InputEvent.BUTTON1_MASK);  try {  Thread.sleep(3000);  } catch (InterruptedException ex) {  ex.printStackTrace();  }  }  }  public synchronized void stop() {  stop = true;  }  /** * @param args the command line arguments */  public static void main(String[] args) {  MouseController mc = new MouseController();  Thread mcThread = new Thread(mc);  System.out.println("Mouse Controller start");  mcThread.start();  try {  Thread.sleep(60000);  } catch (InterruptedException ex) {  ex.printStackTrace();  }  mc.stop();  System.out.println("Mouse Controller stoped");  }  }