基于图像处理操作 QQ 的工具 foolqq

码农软件 · 软件分类 · 图形/图像处理 · 2019-09-05 15:13:45

软件介绍

基于图像处理操作QQ的工具foolqq

目前读写QQ的机器人都是基于爬虫分析smartqq报文来实现的,然而smartqq腾讯已经不再维护,其HTTP服务端经常不可用,且经常需要不定时的重启,foolqq应运而生!

原理概述

定时截取屏幕,并识别图片关键点像素,确定群会话窗口的位置,并通过剪贴板实现JVM消息和屏幕消息的交换。通过Robot类操作鼠标和键盘。

准备工作

1 运行QQcls.exe,这是一个一键清屏(F10键)的程序,简化了清屏的步骤。

2 打开你要监控的群或讨论组,截取群或讨论组的头像,截取的范围不要超出头像的范围,如下红色框中范围差不多即可。将截取后的图像另存为png格式,截取后的图像不能有压缩,并为图片起个英文名字(如下是gj.png),这个名字很重要,对foolqq而言,相当于当前群的id。如果你有多个群,重复此步骤。


3 经过步骤2,foolqq可以找到qq对话框,接下来需要找到输入和输出的位置,如下图所示,工具栏之上的部分是输出,下方是我们的输入,由于qq会话窗口可以自定义大小且工具栏也可以上下拖动,因此对不同用户而言,窗口的位置信息是不一定的,因此,我们需要一张关键图片来描述输入和输出的位置,且这张图片的名字必须是point.png。


关于point.png,我们选择红色框中的A字体标签,截取其中间的横线部分,如下图红色区域所示,务必保证截图中不要包含背景的任何一个像素,这么做的原因是,QQ的背景面板颜色会根据窗口大小、当前群的头像进行渐变色计算,为了提供公共可用的识别点,我们使用下图红色区域的部分。


4 最后请不要使用QQ的合并窗口功能,如果你有多个群,将他们平铺在桌面上,这样foolqq可以监控多个群面板、并保证使用enter键可以发送消息而不是enter+ctrl,关闭多彩气泡功能。上述所有图片路径需要放在工程的根目录下。


用法

public static void main(String[] args) throws AWTException, IOException, NativeHookException {

//创建BaseQQWindowContext的实例、传入之前做好的point.png文件

BaseQQWindowContext context=new BaseQQWindowContext(new File("point.png")) {
	@Override
	public void onMessage(String name, QQMsg msg) {
	
        //name是图片名称(不包括扩展名),对前面提到的gj.png图片而言这里name就是gj,因此可以根据name判断到底是哪个群的消息
	
	System.out.println(msg);   //msg包括内容、发送人QQ、昵称、时间
	}
};
}

本文地址:https://codercto.com/soft/d/13937.html

创新者的窘境

创新者的窘境

克莱顿•克里斯坦森( Clayton M. Christensen ) / 胡建桥 / 中信出版社 / 2010-6 / 38.00元

管理类经典图书 o 被《福布斯》评为20世纪最具影响的20本商业图书之一 o “全球商业书籍奖”获奖图书 “颠覆大师”克莱顿•克里斯坦森经典力作。 《金融时报》/布兹•亚兰及汉密顿全球商务书刊颁发“1997年最佳商务书”奖 “1997年最佳商务‘实用’书”奖 一本书, 让志在必得者战战兢兢, 让犹豫不前者胸有成竹, 掀起激荡决策者的脑力风暴, ......一起来看看 《创新者的窘境》 这本书的介绍吧!

在线进制转换器
在线进制转换器

各进制数互转换器

MD5 加密
MD5 加密

MD5 加密工具

UNIX 时间戳转换
UNIX 时间戳转换

UNIX 时间戳转换