酷Q插件_SDK———入门与使用
<p>1.这里使用的是易语言的SDK,所以请看不惯的人自行离开。{wymbf.}</p><p> 1.2 这里不会直接给你工程,请用动手打代码,动脑思考。</p>
<p> 1.3 不知道、不了解酷Q是干嘛的,请访问:https://cqp.cc/forum.php</p>
<p>2. 请阅读文档[请用一两分钟的时间仔细阅读以下条例] :</p>
<p> 限制行为(开发者、用户):<br><br>2.1 [×] 禁止在任何地方发布或使用违反法律的应用(相关公告)。一经发现,社区团队将直接删除应用、停用相关账号,并配合公安机关调查取证。<br><br>2.2 [×] 禁止在任何地方发布或使用下列包含高风险功能的应用。一经发现,社区团队将直接删除应用、停用相关账号:<br> 2.2.1 主打批量发送或定时批量发送功能的<br> 2.2.2 用于按顺序发送特定内容的<br> 2.2.3 主打广告发送的<br> 2.2.4 违反社会道德规范的(如骂人应用等)<br> 2.2.5 涉及彩票相关功能的(若违反 2.1 条,则直接按 2.1 条进行处理)<br> 2.2.6 涉及赌博性质游戏,但不涉及财物的(若涉及财物,则直接按 2.1 条进行处理)<br> 2.2.7 涉及破坏网游公平性的(如网游修改器等,若违反 2.1 条,则直接按 2.1 条进行处理)<br> 2.2.8 涉及收发红包功能的<br><br>2.3 [!] 不要在社区发布下列类别的应用。一经发现,社区团队将采取对应措施。<br> 2.3.1 在应用所发消息中包含广告、推广性质信息的:归档或删除应用<br> 2.3.2 邀请加群(如邀请统计等):归档或删除应用<br> 2.3.3 引流、薅羊毛等:归档或删除应用<br> 2.3.4 涉及漏洞利用:归档或删除应用<br><br>2.4 对于诸如下列不违反 2.1 至 2.3 条,但包含风险功能的应用,社区团队可能会视情况采取关闭回复、归档或删除应用的措施:<br> 2.4.1 采集、发送影视链接<br> 2.4.2 好友点赞<br> 2.4.3 购物商品推荐<br><br>2.5 不推荐在社区发布需加群授权/推广使用类的应用。在明确注明使用限制的情况下,此类应用可以发布,但社区团队将关闭回复。(请阅读详细公告)</p>
<p>————————————————————————————————————————————</p>
<p>2. |鉴于工具的不同使用方式|使用者与开发者有可能违法上述条例中的2.2 | 有可能对社区造成不好的影响|</p>
<p> |请大家勿将其用于任何非法途径,这将对支持酷Q社区及其团队的长期发展是很好的帮助。 </p>
<p> 2.1|因开发规范的限制,将不会发布工程文件。</p>
<p> </p>
<p>3.入门</p>
<p> </p>
<p>3.1 为什么选择了易语言</p>
<p> 易语言是我小时候的玩具,这是一项非常方便的开发工具。从小学到初中,我曾经将它爱不释手,带着它经历了windowsxp,7,8,10四个版本的变更。直到2016年还有在断断续续的使用。当然四五年之后,我再次面对它shi,我是这样的:</p>
<p> Dim get_time as .... !!! 下拉菜单不见了? </p>
<p>沙雕,这是Basic的语法好不啦。</p>
<p> 哦对,那个时候,酷Q机器人貌似才诞生不久来着。[忙着做外挂,哪里知道这些,而且那时候的我还小,只是为了开心而去玩弄而已]</p>
<p> 这么多年发展过来,真的佩服吴涛,居然带着易语言撑下来了。而且易语言的社区空前的壮大[/ 。。。什么时候vb6也能被孩子们多重视。]</p>
<p> 扯远了,所以选择易语言一方面是因为眼瞎,没看到提供的其他语言SDK,一方面是想重温一下。而且,易语言与VB6类似,IDE秒开秒编译秒运行,死气沉沉的VS....你走吧,不爱你了。</p>
<p>3.2 我们需要准备什么:</p>
<p> 易语言开发工具</p>
<p> SDK【由官方和其他开发者建立的】 的下载地址:https://cqp.cc/t/15124</p>
<p> 开发文档:https://d.cqp.me/Pro/开发 [这里仅有几个说明...... 显然对我这种把易语言关键字忘光了的人没有卵用。]</p>
<p> 酷QAir 小i版 [貌似是没有区别的。] https://cqp.cc/t/23253#pid873447</p>
<p> 两个/一个QQ账号: https://ssl.zc.qq.com/v3/index-chs.html</p>
<p>3.3 使用酷Q并打开开发模式:</p>
<p> 将酷Q下载并解压下来。</p>
<p> 将SDK下载并解压下来。</p>
<p> 打开酷Q,登录它。</p>
<p> 在悬浮窗/酷Q托盘 右键鼠标弹出菜单,选择 应用-->应用管理-->在弹出来的这个窗体 疯狂的按关闭按钮左边的版本号!</p>
<p> 这个时候打开根目录,你将发现多了一个/dev的文件夹。</p>
<p>3.4 了解APPID</p>
<p> https://d.cqp.me/Pro/开发/基础信息</p>
<p>去上面这个链接,你能知道appid该怎么设置。</p>
<p>3.5 打开DEMO!</p>
<p> 解压下载下来的DEMO之后,可以看到三个文件夹和一个E语言模块源码以及模块文件和其他声明文本文档。</p>
<p> 打开 com.example.demo/</p>
<p> 我们将看到文件夹下有两个东西 一个是 json 文件 一个是E语言源码文件 </p>
<p> 使用易语言工具打开源码文件,我们来看一下里面的东西。</p>
<p> 注意 :打开的时候可能会有一个易模块丢失的提示框,找到前面的根目录,将那个EC文件替换引用就好了。</p>
<p>3.6 分析代码:</p>
<p> 虽然做好了心理准备,但是打开这个DEMO的时候,我还是懵了。</p>
<p> 【这些表格和中文是个啥!!!!! 30分钟后: 欸,真香。】</p>
<p> </p>
<p> 单击左边的 【程序】——》程序数据——》展开CQ应用</p>
<p> <img src="https://img2018.cnblogs.com/blog/1598513/201907/1598513-20190711075231391-1582904252.png" alt=""> 再右边的代码窗口,右键菜单,展开所有子程序。</p>
<p>这就是酷Q插件中的事件,并且它的声明已经很完整了,|代码注释是中文这一点倒是很直观</p>
<p>你可以花费一分钟的时间将它看一下。</p>
<p>——————————————————————</p>
<p>我们主要来关心这个函数 | Function AppInfo ×</p>
<p> | 子程序 AppInfo √</p>
<p>.版本 2</p>
<p>.子程序 AppInfo, 文本型, 公开, [请填写] 应用的ApiVer、Appid //请不要在本子程序添加其他代码<br>.局部变量 ApiVer, 整数型<br>.局部变量 AppID, 文本型</p>
<p>ApiVer = 9' Api版本号<br>AppID = “com.example.demo”' AppID,规则见 https://d.cqp.me/Pro/开发/基础信息<br>返回 (到文本 (ApiVer) + “,” + AppID)</p>
<p>根据之前了解的AppID,我们很容易将这里的appid改成自己的。</p>
<p>例如</p>
<p> me.cqp.inkhin.groupsend</p>
<p> _______________________________________</p>
<p>为了确保唯一性,请不要照抄我的设置,欸?我怎么绿了。</p>
<p>当你改好了Appid的时候,大概就完成了第一步。</p>
<p>打开_eventPrivateMsg这个函数,我们可以看到下面写了什么。</p>
<div>
.子程序 _eventPrivateMsg, 整数型, 公开, Type=21 私聊消息
.参数 subType, 整数型, , 子类型,11/来自好友 1/来自在线状态 2/来自群 3/来自讨论组
.参数 msgId, 整数型, , 消息ID
.参数 fromQQ, 长整数型, , 来源QQ
.参数 msg, 文本型, , 消息内容
.参数 font, 整数型, , 字体
' 本子程序会在酷Q【线程】中被调用,请注意使用对象等需要初始化(CoInitialize,CoUninitialize)。
CQ.发送私聊消息 (fromQQ, CQ.CQ码_At (fromQQ) + “你发送了消息:” + msg)
' 如果要回复消息,请调用 api 发送,则 返回(#消息_拦截) - 拦截本条消息,不再由其他应用继续处理 //注意:应用优先级设置为"最高"(10000)时,无法使用本返回值
' 如果不回复消息,交由之后的应用处理,则 返回(#消息_忽略) - 忽略本条消息
返回 (#消息_忽略)<br>'''
</div>
<p>这是一个接受私聊消息的事件,其中有一个要提到,CQ码,在这里是转义“@”的意思,fromQQ参数就是发给你私聊消息那个人的QQ。你可以在右边的文档链接里了解到。https://d.cqp.me/Pro/CQ%E7%A0%81</p>
<p>哦,对了,这也是我说为什么要两个QQ的原因,不然你在尝试加载插件后,可能会出现下面的场景:</p>
<p><img src="https://img2018.cnblogs.com/blog/1598513/201907/1598513-20190711084332249-243450970.png" alt=""></p>
<p><img src="https://img2018.cnblogs.com/blog/1598513/201907/1598513-20190711084356268-1245401992.png" alt=""></p>
<p>3.7 尝试编译并载入插件</p>
<p> 使用 静态编译 生成 app.dll</p>
<p> 复制你的appid,将目录名称com.example.demo,修改为你的appid。</p>
<p> 将它这个目录移动到/dev下,确保这个路径里有以下两个文件 app.dll app.json.</p>
<p> 按照之前的步骤打开应用管理,你将看到这样一些属性。</p>
<p> <img src="https://img2018.cnblogs.com/blog/1598513/201907/1598513-20190711081435392-879689139.png" alt=""></p>
<p> </p>
<p> 在菜单里,还能看到 设置A和设置B,点击它,居然出现了弹框,哇好神奇啊!再仔细比对代码,咦,这不就是_menuA和_menuB么。</p>
<p> 但是你找遍代码也没找到设置的点对不对?</p>
<p> 没错,是时候打开/dev/appid/下的app.json了!</p>
<p>3.8 分析Json</p>
<p> 【又见vs..... 谁让你是我的默认编辑器呢。】</p>
<p> 很明显了,所有的参数都在里面,包括函数的使用。</p>
<p> <img src="https://img2018.cnblogs.com/blog/1598513/201907/1598513-20190711083254055-543228684.png" alt=""></p>
<p><img src="https://img2018.cnblogs.com/blog/1598513/201907/1598513-20190711083333847-37487411.png" alt=""></p>
<p>我懒得讲...你也懒得看。</p>
<p>3.9 修改DEMO。</p>
<p>这个也不说了,这是编程最好的学习方式。</p>
<p>4.通过上面的这些介绍,于是你很容易就能做出各种各样的插件:</p>
<p> </p>
<p>以下是昨天制作的群消息定时发送插件,但是据开发规范2.2,此类工具具有非常高的风险,所以不会公布源文件。请大家理解并支持CQ。</p>
<p> <img src="https://img2018.cnblogs.com/blog/1598513/201907/1598513-20190711085101411-1327972002.png" alt=""><img src="https://img2018.cnblogs.com/blog/1598513/201907/1598513-20190711085245517-744789027.png" alt=""></p>
<p> </p>
<p>使用效果。</p>
<p><img src="https://img2018.cnblogs.com/blog/1598513/201907/1598513-20190711090418719-695385050.png" alt=""></p>
<p> 以上仅总结我的个人经验,单纯的为了出于学习的目的,由于没有了解到到CQ的开发者规范,造成了不好的影响,非常抱歉。</p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p> </p><br><br>
来源:https://www.cnblogs.com/lingqingxue/p/11167169.html
頁:
[1]