`
xsong512
  • 浏览: 34342 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

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。程序功能很简单:随机移动鼠标并点击左键
package robot;

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;

public class MourseControl  implements Runnable{
	private Dimension dim;
	private Random rand;
	private Robot robot; 
	
	private volatile boolean stop = false;
    public MourseControl()
    {
    	//
    	dim = Toolkit.getDefaultToolkit().getScreenSize();
    	rand = new Random();
    	try {
			robot = new Robot();
		} catch (AWTException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
    }
	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
        MourseControl m = new MourseControl();
        Thread t =  new Thread(m);
        t.start();
        System.out.println("MourseControl start...");
        try {
			Thread.sleep(10000);
		} catch (InterruptedException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
        m.stop();
        System.out.println("MourseControl stop...");
	}
	public void run() {
		// TODO Auto-generated method stub
		while(!stop)
		{
			int x = rand.nextInt(dim.width);
			int y = rand.nextInt(dim.height);
			
			try {
				Thread.sleep(2000);
			} catch (InterruptedException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
			robot.mouseMove(x, y);
			System.out.println("move to :x="+x+",y="+y);
			robot.mousePress(InputEvent.BUTTON1_MASK);
		}
		
	}
	public synchronized void stop()
	{
		stop = true;
	}

}



当然键盘映射也类似,无非是使用void keyPress(int keycode)。
分享到:
评论

相关推荐

    Java实现鼠标模拟与键盘映射

    主要为大家详细介绍了Java实现鼠标模拟与键盘映射,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

    JAVA上百实例源码以及开源项目源代码

     Java实现HTTP连接与浏览,Java源码下载,输入html文件地址或网址,显示页面和HTML源文件,一步步的实现过程请下载本实例的Java源码,代码中包括丰富的注释,对学习有帮助。 Java实现的FTP连接与数据浏览程序 1个...

    JAVA上百实例源码以及开源项目

     Java实现HTTP连接与浏览,Java源码下载,输入html文件地址或网址,显示页面和HTML源文件,一步步的实现过程请下载本实例的Java源码,代码中包括丰富的注释,对学习有帮助。 Java实现的FTP连接与数据浏览程序 1个...

    Java开发技术大全(500个源代码).

    MyFileOutput.java 将键盘读入的文字保存到文件 MyPipedIO.java 管道流示例 MySequenceIn.java 顺序输入流示例 ObjectFileTest.java 序列化对象示例 ReadAndWrite.java 读入和写出数据 ReadAndWriteFile.java ...

    ControllerToKeys:使用控制器模拟键盘和鼠标。-开源

    ControllerToKeys旨在通过模拟按键,鼠标移动,鼠标按钮,滚轮和按键组合(即alt + tab),为所有没有该功能的PC游戏提供完全的控制器支持。 通过保存和共享按钮映射的能力,目的是能够通过以下方式与他人公开共享...

    java范例开发大全源代码

     实例13 Java中的进制与移位运算符 22  第3章 条件控制语句(教学视频:75分钟) 26  3.1 if控制语句 26  实例14 判断输入的年份是否为闰年 26  实例15 抽奖活动 27  3.2 for语句 28  实例16 ...

    java范例开发大全

    实例13 Java中的进制与移位运算符 22 第3章 条件控制语句(教学视频:75分钟) 26 3.1 if控制语句 26 实例14 判断输入的年份是否为闰年 26 实例15 抽奖活动 27 3.2 for语句 28 实例16 小九九乘法表 28 实例17 如何列...

    Java范例开发大全 (源程序)

     实例13 Java中的进制与移位运算符 22  第3章 条件控制语句(教学视频:75分钟) 26  3.1 if控制语句 26  实例14 判断输入的年份是否为闰年 26  实例15 抽奖活动 27  3.2 for语句 28  实例16 小九九...

    Java范例开发大全(全书源程序)

    实例13 Java中的进制与移位运算符 22 第3章 条件控制语句(教学视频:75分钟) 26 3.1 if控制语句 26 实例14 判断输入的年份是否为闰年 26 实例15 抽奖活动 27 3.2 for语句 28 实例16 小九九乘法表 28 实例17...

    Java开发实战1200例(第1卷).(清华出版.李钟尉.陈丹丹).part3

    本书是第II卷,以开发人员在项目开发中经常遇到的问题和必须掌握的技术为中心,介绍了应用Java进行桌面程序开发各个方面的知识和技巧,主要包括Java语法与面向对象技术、Java高级应用、窗体与控件应用、文件操作...

    java范例开发大全(pdf&源码)

    实例13 Java中的进制与移位运算符 22 第3章 条件控制语句(教学视频:75分钟) 26 3.1 if控制语句 26 实例14 判断输入的年份是否为闰年 26 实例15 抽奖活动 27 3.2 for语句 28 实例16 小九九乘法表 28 实例17 如何列...

    Android 开发技巧

    9.86.4、模拟键盘鼠标事件(Socket+Instrumentation实现) 332 9.86.5、再述模拟键盘鼠标事件(adb shell 实现) 334 9.87、反编译APK 344 9.88、更换APK图标(签名打包) 348 9.89、利用ANDROID MARKET赚钱 363 9.90...

    Android开发资料合集-World版!

    9.86.4、模拟键盘鼠标事件(Socket+Instrumentation实现) 332 9.86.5、再述模拟键盘鼠标事件(adb shell 实现) 334 9.87、反编译APK 344 9.88、更换APK图标(签名打包) 348 9.89、利用ANDROID MARKET赚钱 363 9.90...

    WEB设计大全

    文本、按钮、图标及图形 <br>6.1 基本的Web链接模型 <br>6.1.1 结构和非结构链接的比较 <br>6.1.2 静态和动态链接 <br>6.2 ...6.2.5 图像映射 <br>6.2.6 其他链接方式 <br>6.3 链接的实现问题...

    WEB设计大全(part2)

    文本、按钮、图标及图形 <br>6.1 基本的Web链接模型 <br>6.1.1 结构和非结构链接的比较 <br>6.1.2 静态和动态链接 <br>6.2 ...6.2.5 图像映射 <br>6.2.6 其他链接方式 <br>6.3 链接的实现问题...

Global site tag (gtag.js) - Google Analytics