加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

纯Java实现跨平台鼠标键盘模拟、找图找色,Java版按键精灵

发布时间:2020-12-15 03:12:35 所属栏目:Java 来源:网络整理
导读:今天PHP站长网 52php.cn把收集自互联网的代码分享给大家,仅供参考。 由原本的Java使用JNI调用dll实现模拟辅助操作,升级到纯Java来实现,最新:?https://github.com/xnx3/xnx3 /** * 鼠标、键盘、延迟等基本操作 */publi

以下代码由PHP站长网 52php.cn收集自互联网

现在PHP站长网小编把它分享给大家,仅供参考

由原本的Java使用JNI调用dll实现模拟辅助操作,升级到纯Java来实现,最新:?https://github.com/xnx3/xnx3
/**
 * 鼠标、键盘、延迟等基本操作
 */
public static void simple(){
	Robot robot = new Robot();
	
	robot.delay(1000); 	//延迟等待1秒
	robot.mouseRightClick(400,400);	//点击鼠标右键
	robot.delay(300); 	//延迟等待0.3秒
	robot.mouseLeftClick(400,400); 	//点击鼠标左键
	robot.press(KeyEvent.VK_H); 	//按h键
	robot.press(KeyEvent.VK_SHIFT,KeyEvent.VK_CONTROL);	//按下SHIFT键后又按下CTRL键
}
/**
 * 点的颜色比较
 */
public static void colorCompare(){
	Robot robot = new Robot();
	//获取屏幕上某点颜色
	Color color = robot.getPixelColor(100,100);
	System.out.println("当前点的颜色值:"+ColorUtil.colorToHex(color));
	
	//判断屏幕上制定点的颜色是否跟指定颜色相匹配(近似相等)
	boolean b = robot.getColorCompare(100,100,"EBF1F9",Robot.SIM_ACCURATE);
	System.out.println("匹配颜色相似度:"+(b? "相似":"不相似"));
}
/**
 * 图片搜索
 * 为提高搜索的精确度,推荐使用配套工具截图 http://www.xnx3.com/software/xnx3/ScreenCapture
 */
public static void imageSearch(){
	Robot robot = new Robot();
	robot.setSourcePath(RobotDemo.class);	//设置此处是为了让程序能自动找到要搜索的图片文件。图片文件在当前类下的res文件夹内
	
	//在当前屏幕上搜索search.png图片,看起是否存在
	List<CoordBean> list1 = robot.imageSearch("search.png",Robot.SIM_ACCURATE);
	System.out.println(list1.size()>0? "搜索到了"+list1.size()+"个目标":"没搜索到");
	if(list1.size()>0){
		for (int i = 0; i < list1.size(); i++) {
			CoordBean coord = list1.get(i);
			System.out.println("搜索到的第"+(i+1)+"个坐标:x:"+coord.getX()+",y:"+coord.getY());
		}
	}
	
	
	//在屏幕上指定的区域:左上方x100,y100, 右下方x300,y300的范围内搜索多个图像
	List<CoordBean> list2 = robot.imageSearch(100,300,"search.png|L.png",Robot.SIM_BLUR_VERY);
	System.out.println(list2.size()>0? "搜索到了"+list2.size()+"个目标":"没搜索到");
	if(list2.size()>0){
		for (int i = 0; i < list2.size(); i++) {
			CoordBean coord = list2.get(i);
			System.out.println("搜索到的第"+(i+1)+"个坐标:x:"+coord.getX()+",y:"+coord.getY());
		}
	}
}

以上内容由PHP站长网【52php.cn】收集整理供大家参考研究

如果以上内容对您有帮助,欢迎收藏、点赞、推荐、分享。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读