找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 2.6K|回复: 5

[已解决] 想做个插件

  [复制链接]

  离线 

1

主题

3

回帖

13

积分

UID
5404
威望
0
金钱
68
金币
0

积分
13
连签
1

在线时间: 2 小时
最后登录: 2022-3-25
发表于 2019-7-20 18:56:22 | 显示全部楼层 |阅读模式

马上登陆,加入晨风

您需要 登录 才可以下载或查看,没有账号?立即注册

×
本帖最后由 zxc112234 于 2019-7-24 22:13 编辑

然后基本的回复已经会了 怎么让机器人主动 发消息给某个好友呢?
【晨风机器人论坛】http://bbs.52svip.cn 【晨风论坛官方群】822875090

  离线 

16

主题

83

回帖

1238

积分

UID
1
威望
85
金钱
13871
金币
113

积分
1238
连签
1

在线时间: 9045 小时
最后登录: 2024-11-26

进阶会员

QQ
发表于 2019-7-21 00:13:54 | 显示全部楼层
3.本地插件dll可以获取当前群的窗口句柄,然后此dll可以根据需要向那个窗口(即那个群)发送文字。
c++或者易语言应该都可以调用windows的API函数
SendMessageA(hwnd1,1301,uin,tempstr);
第一个是窗口句柄,第二个是消息id,固定为1301,第三个参数是要向群里哪个qq发此消息(如果uin的值为99998888或88889999,则表示第四个参数是utf8格式,而且如果是88889999,则是类似于在qq群和好友列表那里发送群消息,不经过群输出替换等处理),如果只是发在群里,可以把此参数设置为0,如果要针对具体某个qq号发消息,就要在这个参数里传递此人的qq号。默认是在群里发此消息的,如果要跟那个qq号私聊,那么第四个参数必须以“私聊”二字开头。第四个参数是要发的文字(统一为ascii码格式,而非unicode或utf8格式),可以包含奖惩指令,如果不希望意外包含奖惩指令,也可以在末尾加一个“【过滤奖惩字符】”标识,防止别人钻什么漏洞。
其中第一个参数窗口句柄来自于插件dll之前被调用时获取到的传入的完整参数列表中的myhwnd参数。注意不是初始化dll时,而是每次在群里比如以【显示网址内容http://127.0.0.1/testplug.dll?function=splitfun&cmdstr=$回声$】被调用时就能获取到传入的myhwnd参数了。
使用这种方法就可以利用插件主动向群里或者群友发消息、发通知了。而不用使用之前的定时任务之类低效的方式。
4.机器人启动后还会在软件目录下生成一个“群号和窗口句柄对应关系.txt”,这样除了制作本地dll插件可以跟机器人通讯外,甚至还可以通过其它exe解析“群号和窗口句柄对应关系.txt”文件,然后跨进程向机器人窗口发文本数据来主动向群里发消息。
注意如果是跨进程向机器人窗口发消息时,必须使用
SendMessageA(hwnd1,WM_COPYDATA,0,cpd);其中第一个参数还是窗口句柄,第二个是windows专用的跨进程通讯的消息消息id 74,第三个无意义,可设置为0,第四个是一个指向COPYDATASTRUCT的地址或者说指针。要实现的话,大家可以自行在网上搜索“WM_COPYDATA 易语言”或者“易语言WM_COPYDATA消息通信”之类教程。
如果要以某个qq为发消息对象,则第四个参数cpd指向的utf8格式的文本的开头应该包含一个“13402429groupnum:208597416 ”之类的标识。前面的13402429是qq号,后面的208597416是群号。如果没加这些,则是单纯的在群里发消息,而没指定是向谁回复消息。记得确保群号后面有一个空格,以免跟后面消息正文中的数字粘连在一起了。具体消息是以私聊的方式显示消息还是默认的在群里显示,也同样是取决于是否在消息正文的开头是否有“私聊”二字。

  离线 

0

主题

85

回帖

40

积分

UID
1324
威望
8
金钱
1490
金币
0

积分
40
连签
4

在线时间: 37 小时
最后登录: 2019-10-15
发表于 2019-7-21 11:16:29 | 显示全部楼层
本帖最后由 皮百万 于 2019-7-21 11:21 编辑

大恩的模块封装了,可惜已经退网了
2.png
皮百万,任我行

  离线 

4威震论坛
1451/2500

7

主题

77

回帖

1451

积分

UID
278
威望
0
金钱
2045
金币
143

积分
1451
连签
0

在线时间: 104 小时
最后登录: 2020-10-20
发表于 2019-7-24 22:10:50 | 显示全部楼层
这个很简单了  没 啥难度
┌─判断(美女=真)
├┬执行(操)
└┼→执行(滚)

  离线 

1

主题

3

回帖

13

积分

UID
5404
威望
0
金钱
68
金币
0

积分
13
连签
1

在线时间: 2 小时
最后登录: 2022-3-25
 楼主| 发表于 2019-7-24 22:13:35 | 显示全部楼层
无名 发表于 2019-7-21 00:13
3.本地插件dll可以获取当前群的窗口句柄,然后此dll可以根据需要向那个窗口(即那个群)发送文字。
c++或者 ...

谢谢,帮我解决了大问题
【晨风机器人论坛】http://bbs.52svip.cn 【晨风论坛官方群】822875090

  离线 

1

主题

3

回帖

13

积分

UID
5404
威望
0
金钱
68
金币
0

积分
13
连签
1

在线时间: 2 小时
最后登录: 2022-3-25
 楼主| 发表于 2019-7-24 22:14:03 | 显示全部楼层
皮百万 发表于 2019-7-21 11:16
大恩的模块封装了,可惜已经退网了

嗯咯  是的 挺可惜的,不过 江湖有缘终会相见的
【晨风机器人论坛】http://bbs.52svip.cn 【晨风论坛官方群】822875090
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|站点地图|Archiver|手机版|小黑屋|晨风机器人论坛 ( 粤ICP备17129296号 )|网站地图|

GMT+8, 2026-4-9 20:36 , Processed in 0.385749 second(s), 36 queries , Gzip On, Redis On.

Powered by 晨风机器人论坛 (X3.5)

© 2001-2024 晨风机器人论坛.

快速回复 返回顶部 返回列表