JAVZ虚拟键盘

来源:互联网 发布:linux解压缩gz文件 编辑:程序博客网 时间:2024/05/22 09:52
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");}}
0 0