当前位置: 代码迷 >> 编程 >> java拾掇软件-java模拟键盘,鼠标操作
  详细解决方案

java拾掇软件-java模拟键盘,鼠标操作

热度:7565   发布时间:2013-02-26 00:00:00.0
java整理软件---java模拟键盘,鼠标操作
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");
}
}
  相关解决方案