易语言

关注公众号 jb51net

关闭
首页 > 软件编程 > 易语言 > 易语言qq群发助手

易语言QQ群发支持图片文字数据一起发送的工具

作者:易语言源码教程

今天小编就为大家分享一篇关于易语言QQ群发支持图片文字数据一起发送的工具,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧

DLL命令表

.版本 2
.DLL命令 OpenClipboard, 逻辑型, "user32", "OpenClipboard", , 打开CLIPBOARD
  .参数 hwnd, 整数型
.DLL命令 GetClipboardData, 整数型, "user32", "GetClipboardData", , 返回剪贴板数据的句柄
  .参数 wFormat, 整数型
.DLL命令 RegisterClipboardFormat, 整数型, "user32", "RegisterClipboardFormatA", , 登记新的CLIPBOARD格式
  .参数 lpString, 文本型
.DLL命令 GlobalSize, 整数型, "kernel32", "GlobalSize", , 返回全局内存块大小
  .参数 hMem, 整数型
.DLL命令 GlobalLock, 整数型, "kernel32", "GlobalLock", , 锁定内存对象并返回一个指针
  .参数 hMem, 整数型
.DLL命令 CloseClipboard, 整数型, "user32", "CloseClipboard", , 关闭剪贴板
.DLL命令 GlobalAlloc, 整数型, "kernel32", "GlobalAlloc", , 在堆中分配内存
  .参数 wFlags, 整数型
  .参数 dwBytes, 整数型
.DLL命令 GlobalUnlock, 整数型, "kernel32", "GlobalUnlock", , 开锁全局内存块
  .参数 hMem, 整数型
.DLL命令 EmptyClipboard, 逻辑型, "user32", "EmptyClipboard", , 清空剪贴板并释放数据句柄
.DLL命令 SetClipboardData, 整数型, "user32", "SetClipboardData", , 设置剪贴板中数据
  .参数 wFormat, 整数型
  .参数 hMem, 整数型
.DLL命令 CreateThread, 整数型, "kernel32.dll", "CreateThread", , 创建一个新的线程,创建完毕会立即返回。成功则返回新线程的句柄,零表示失败
  .参数 lpThreadAttributes, 整数型, , 指向一个SECURITY_ATTRIBUTES结构,主要用来指定句柄是否可以被继承,如果让线程使用默认的安全属性,可以将此值设为 NULL
  .参数 dwStackSize, 整数型, , 线程堆栈大小,如果为0,那么线程的堆栈大小和主线程使用的大小相同
  .参数 lpStartAddress, 子程序指针, , 线程的开始执行地址,指向一个新线程函数(过程)的指针
  .参数 lpParameter, 整数型, , 传递给自定义参数,传递给子线程的参数,0为无限止
  .参数 dwCreationFlags, 整数型, , 设置线程被创建后的状态,如果为0表示,创建后立即运行,如果为CREATE_SUSPENDED标志,表示线程被创建后处于挂志状态,直到使用ResumeThread函数显式地启动线程为止
  .参数 lpThreadId, 整数型, , 指向一个双字节变量,用来接收函数返回的线程ID.线程ID在系统范围内是唯一的.

常量数据表

.版本 2
.常量 Fmt_Head, "<文本长度: 46>", , <QQRichEditFormat><Info version="1001"></Info>
.常量 Str_Head, "<文本长度: 31>", , <EditElement type="0"><![CDATA[
.常量 Img_Head, "<文本长度: 32>", , <EditElement type="1" filepath="
.常量 Img_End, "<文本长度: 28>", , " shortcut=""></EditElement>
.常量 Face_Head, "<文本长度: 36>", , <EditElement type="2" sysfaceindex="
.常量 Face_End, "<文本长度: 40>", , " filepath="" shortcut=""></EditElement>
.常量 GMEM_MOVEABLE, "2"
.常量 GMEM_ZEROINIT, "64"

QQ群发助手

此功能需要加载精易模块5.6

.版本 2
.支持库 eAPI
.支持库 iext
.程序集 窗口程序集1
.程序集变量 聊天句柄数组, 整数型, , "0"
.程序集变量 线程句柄, 整数型
.程序集变量 停止, 逻辑型
.程序集变量 QQ剪辑板标志, 整数型
.子程序 _添加文本按钮_被单击
.局部变量 Str, 文本型
.如果真 (输入框 (“请输入文本”, “输入框”, “请输入内容[QQ剪辑板格式]”, Str, #输入文本))
  列表框1.加入项目 (Str, 0)
.如果真结束
.子程序 __启动窗口_创建完毕
QQ剪辑板标志 = RegisterClipboardFormat (“QQ_RichEdit_Format”)
.子程序 _添加图片按钮_被单击
.如果真 (通用对话框1.打开 ())
  列表框1.加入项目 (通用对话框1.文件名, 1)
.如果真结束
.子程序 _添加表情按钮_被单击
.局部变量 Str, 整数型
.如果真 (输入框 (“表情代码[整数]”, “输入框”, “请输入表情代码”, Str, #输入整数))
  列表框1.加入项目 (到文本 (Str), 2)
.如果真结束
.子程序 _合成置入按钮_被单击
.局部变量 Str, 文本型
.局部变量 mStr, 整数型
.局部变量 lpMem, 整数型
.如果真 (列表框1.取项目数 () = 0)
  信息框 (“数据不能为空”, 0, )
.如果真结束
Str = 合成QQ剪辑板代码 ()
mStr = GlobalAlloc (位或 (#GMEM_MOVEABLE, #GMEM_ZEROINIT), 取文本长度 (Str) + 1)
.如果真 (mStr ≠ 0)
  lpMem = GlobalLock (mStr)
  .如果真 (lpMem ≠ 0)
    写到内存 (Str, lpMem, )
    GlobalUnlock (mStr)
    .如果真 (mStr ≠ 0)
      .如果真 (OpenClipboard (0))
        .如果真 (EmptyClipboard ())
          SetClipboardData (QQ剪辑板标志, mStr)
        .如果真结束
        CloseClipboard ()
      .如果真结束
    .如果真结束
  .如果真结束
.如果真结束
.子程序 合成QQ剪辑板代码, 文本型
.局部变量 Code, 文本型
.局部变量 i, 整数型
Code = #Fmt_Head
.计次循环首 (列表框1.取项目数 (), i)
  .判断开始 (列表框1.取项目数值 (i - 1) = 0) ' 文本
    Code = Code + #Str_Head + 列表框1.取项目文本 (i - 1) + “]]></EditElement>”
  .判断 (列表框1.取项目数值 (i - 1) = 1) ' 图片
    Code = Code + #Img_Head + 列表框1.取项目文本 (i - 1) + #Img_End
  .判断 (列表框1.取项目数值 (i - 1) = 2) ' 系统表情
    Code = Code + #Face_Head + 列表框1.取项目文本 (i - 1) + #Face_End
  .默认
  .判断结束
.计次循环尾 ()
Code = Code + “</QQRichEditFormat>”
返回 (Code)
.子程序 发消息
.局部变量 计次, 整数型
.判断循环首 (取反 (停止))
  清除数组 (聊天句柄数组)
  获取并过滤窗口信息 ()
  .计次循环首 (取数组成员数 (聊天句柄数组), 计次)
    窗口_总在最前 (聊天句柄数组 [计次], 真)
    模拟按键 (#Ctrl键, #V键, )
    程序_延时 (1000)
    键盘_消息 (聊天句柄数组 [计次], #回车键, 5)
    窗口_总在最前 (聊天句柄数组 [计次], 假)
    程序_延时 (1500)
  .计次循环尾 ()
  程序_延时 (到整数 (间隔时间编辑框.内容) × 1000)
.判断循环尾 ()
.子程序 获取并过滤窗口信息
.局部变量 数组, 整数型, , "0"
.局部变量 计次, 整数型
.局部变量 索引, 整数型
.局部变量 A, 整数型
A = 0
窗口_枚举子窗口 (, 数组, “TXGuiFoundation”)
超级列表框1.全部删除 ()
.计次循环首 (取数组成员数 (数组), 计次)
  .如果真 (窗口_是否可见 (数组 [计次]))
    .如果真 (窗口_取标题 (数组 [计次]) ≠ “QQ”)
      .如果真 (窗口_取标题 (数组 [计次]) ≠ “腾讯微云”)
        .如果真 (窗口_取标题 (数组 [计次]) ≠ “查找”)
          .如果真 (窗口_取标题 (数组 [计次]) ≠ “系统设置”)
            .如果真 (窗口_取标题 (数组 [计次]) ≠ “消息管理器”)
              .如果真 (窗口_取标题 (数组 [计次]) ≠ “应用宝”)
                .如果真 (倒找文本 (窗口_取标题 (数组 [计次]), “的资料”, , 假) = -1)
                  .如果真 (倒找文本 (窗口_取标题 (数组 [计次]), “的 收藏”, , 假) = -1)
                    .如果真 (倒找文本 (窗口_取标题 (数组 [计次]), “的 文件助手”, , 假) = -1)
                      A = A + 1
                      索引 = 超级列表框1.插入表项 (0, 到文本 (A), 1, , , )
                      超级列表框1.置标题 (索引, 1, 窗口_取标题 (数组 [计次]))
                      加入成员 (聊天句柄数组, 数组 [计次])
                    .如果真结束
                  .如果真结束
                .如果真结束
              .如果真结束
            .如果真结束
          .如果真结束
        .如果真结束
      .如果真结束
    .如果真结束
  .如果真结束
.计次循环尾 ()
.子程序 _发送按钮_被单击
.如果 (发送按钮.标题 = “开始发送”)
  停止 = 假
  线程句柄 = 线程_启动 (&发消息)
  发送按钮.标题 = “停止发送”
.否则
  发送按钮.标题 = “开始发送”
  停止 = 真
  线程_销毁 (线程句柄)
.如果结束
.子程序 线程_启动, 整数型, 公开, 成功返回线程句柄,失败返回0
.参数 要启动的子程序, 子程序指针
.参数 要传去子程序的参数, 整数型, 可空, 往子程序里面传递一个整数型的参数
.参数 线程ID, 整数型, 参考 可空, 请提供一个整数型的变量,用于存放新创建的线程ID。
返回 (CreateThread (0, 0, 要启动的子程序, 要传去子程序的参数, 0, 线程ID))
.子程序 _清空数据按钮_被单击
列表框1.清空 ()

运行结果:

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对脚本之家的支持。如果你想了解更多相关内容请查看下面相关链接

您可能感兴趣的文章:
阅读全文