易语言通过按键模拟的方式实现QQ后台加人加群的代码

DLL命令表

.版本 2
.DLL命令 GetModuleHandle, 整数型, "kernel32", "GetModuleHandleA"
  .参数 lpModuleName, 文本型
.DLL命令 GetDesktopWindow, 整数型, "user32.dll", "GetDesktopWindow"
.DLL命令 CreateToolhelp32Snapshot, 整数型, "kernel32", "CreateToolhelp32Snapshot"
  .参数 dwFlags, 整数型, , 0
  .参数 th32ProcessIE, 整数型, , 0
.DLL命令 Process32First, 整数型, "kernel32", "Process32First"
  .参数 hSnapshot, 整数型, , 0
  .参数 lppe, 进程信息列表, , 0
.DLL命令 CloseHandle, 逻辑型, "Kernel32", "CloseHandle", , 关闭打开的对象句柄
  .参数 hObject, 整数型, , 要关闭的对象句柄
.DLL命令 GetWindowTextA, 整数型, "user32.dll", "GetWindowTextA", , 取得一个窗体的标题(caption)文字,或者一个控件的内容(在vb里使用:使用vb窗体或控件的caption或text属性) 复制到lpString的字串长度;不包括空中止字符。会设置GetLastError
  .参数 hWnd, 整数型, , 欲获取文字的那个窗口的句柄
  .参数 lpString, 文本型, 传址, 预定义的一个缓冲区,至少有cch 1个字符大小;随同窗口文字载入
  .参数 nMaxCount, 整数型, , lp缓冲区的长度;
.DLL命令 GetWindowTextLength, 整数型, "user32", "GetWindowTextLengthA", 公开
  .参数 hwnd, 整数型
.DLL命令 Process32Next, 整数型, "kernel32", "Process32Next", , 获得下一个进程的句柄
  .参数 hSnapshot, 整数型, , 0
  .参数 lppe, 进程信息列表, , 0
.DLL命令 GetWindow, 整数型, , "GetWindow"
  .参数 源窗口, 整数型
  .参数 关系, 整数型
.DLL命令 CreateWindowEx, 整数型, "user32", "CreateWindowExA"
  .参数 dwExStyle, 整数型
  .参数 lpClassName, 文本型
  .参数 lpWindowName, 文本型
  .参数 dwStyle, 整数型
  .参数 x, 整数型
  .参数 y, 整数型
  .参数 nWidth, 整数型
  .参数 nHeight, 整数型
  .参数 hWndParent, 整数型
  .参数 hMenu, 整数型
  .参数 hInstance, 整数型
  .参数 lpParam, 整数型
.DLL命令 SetWindowLong, 整数型, "user32", "SetWindowLongA"
  .参数 hwnd, 整数型
  .参数 nIndex, 整数型
  .参数 dwNewLong, 整数型
.DLL命令 SendMessage, 整数型, "user32", "SendMessageA"
  .参数 hwnd, 整数型
  .参数 wMsg, 整数型
  .参数 wParam, 整数型
  .参数 lParam, 整数型
.DLL命令 GetWindowLong, 整数型, "user32", "GetWindowLongA"
  .参数 hwnd, 整数型
  .参数 nIndex, 整数型
.DLL命令 ShowWindow, 整数型, "user32", "ShowWindow"
  .参数 hwnd, 整数型
  .参数 nCmdShow, 整数型
.DLL命令 GetProcAddress, 整数型, "kernel32", "GetProcAddress"
  .参数 hModule, 整数型
  .参数 lpProcName, 文本型
.DLL命令 RegisterClass, 整数型, "user32.dll", "RegisterClassA"
  .参数 Class, WNDCLASS, 传址
.DLL命令 GetStockObject, 整数型, "gdi32.dll", "GetStockObject"
  .参数 nIndex, 整数型
.DLL命令 GetMessage, 整数型, "user32.dll", "GetMessageA"
  .参数 lpMsg, 整数型, 传址 数组
  .参数 hwnd, 整数型
  .参数 wMsgFilterMin, 整数型
  .参数 wMsgFilterMax, 整数型
.DLL命令 TranslateMessage, 整数型, "user32.dll", "TranslateMessage"
  .参数 lpMsg, 整数型, 传址 数组
.DLL命令 DispatchMessage, 整数型, "user32.dll", "DispatchMessageA"
  .参数 lpMsg, 整数型, 传址 数组
.DLL命令 IsIconic, 逻辑型, "user32", "IsIconic"
  .参数 hwnd, 整数型
.DLL命令 PostThreadMessage, 整数型, "user32", "PostThreadMessageA"
  .参数 idThread, 整数型
  .参数 msg, 整数型
  .参数 wParam, 整数型
  .参数 lParam, 整数型
.DLL命令 GetWindowThreadProcessId, 整数型, "user32", "GetWindowThreadProcessId"
  .参数 hwnd, 整数型
  .参数 lpdwProcessId, 整数型, 传址
.DLL命令 CreateThread, 整数型, "kernel32", "CreateThread"
  .参数 lpThreadAttributes, 整数型
  .参数 dwStackSize, 整数型
  .参数 lpStartAddress, 子程序指针
  .参数 lpParameter, 整数型, 传址
  .参数 dwCreationFlags, 整数型
  .参数 lpThreadId, 整数型, 传址
.DLL命令 IsWindowVisible, 逻辑型, "user32", "IsWindowVisible"
  .参数 hwnd, 整数型
.DLL命令 IsWindow, 逻辑型, "user32", "IsWindow"
  .参数 hwnd, 整数型

常量数据表

.版本 2
.常量 tencent群, "<文本长度: 75>", , tencent://groupwpa/? subcmd=all&param=@@@@@@@@@@@@@@&fuin=##################

自定义数据类型表

.版本 2
.数据类型 进程信息列表, 公开
  .成员 dwSize, 整数型, , , 1
  .成员 cntUsage, 整数型, , , 2
  .成员 进程ID, 整数型, , , 3
  .成员 th32DefaultHeapID, 整数型, , , 4
  .成员 th32ModuleID, 整数型, , , 5
  .成员 cntThreads, 整数型, , , 6
  .成员 th32ParentProcessID, 整数型, , , 7
  .成员 pcPriClassBase, 整数型, , , 8
  .成员 dwFlags, 整数型, , , 9
  .成员 进程名称, 字节型, , "256", 10
.数据类型 WNDCLASS
  .成员 style, 整数型
  .成员 lpfnwndproc, 整数型
  .成员 cbClsextra, 整数型
  .成员 cbWndExtra, 整数型
  .成员 hInstance, 整数型
  .成员 hIcon, 整数型
  .成员 hCursor, 整数型
  .成员 hbrBackground, 整数型
  .成员 lpszMenuName, 文本型
  .成员 lpszClassName, 文本型

QQ后台加人加群的代码

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

.版本 2
.支持库 eAPI
.支持库 spec
.程序集 程序集1
.程序集变量 句柄数组, 整数型, , "0"
.子程序 _启动子程序, 整数型, , 本子程序在程序启动后最先执行
.局部变量 i, 整数型
.局部变量 QQ, 文本型, , "0"
.局部变量 待加, 文本型
.局部变量 方式, 整数型
.局部变量 返回内容, 文本型, , "0"
.局部变量 地址, 文本型
.局部变量 返回的QQ号码, 文本型
方式 = 1
待加 = “20094487”
返回的QQ号码 = 系统_取已登陆QQ号码 ()
QQ = 分割文本 (返回的QQ号码, #换行符, )
.计次循环首 (取数组成员数 (QQ), i) ' 取的当前登录的QQ
  结束添加好友 () ' 结束当前添加好友窗口
  .如果 (方式 = 0)
    打开指定网址 (“tencent://AddContact/?fromId=45&fromSubId=1&subcmd=all&uin=” + 待加 + “&fuin=” + QQ [i]) ' 打开QQ添加指定好友窗口
  .否则
    地址 = 子文本替换 (#tencent群, “@@@@@@@@@@@@@@”, 待加, , , 真)
    地址 = 子文本替换 (地址, “##################”, QQ [i], , , 真)
    打开指定网址 (地址)
  .如果结束
  判断句柄 (句柄数组) ' 得到添加QQ窗口句柄
  调试输出 (句柄数组)
  .如果真 (取数组成员数 (句柄数组) = 1)
    .如果真 (窗口_句柄是否有效 (句柄数组 [1]))
      窗口_置位置和大小 (句柄数组 [1], -1000, -1000) ' 将窗口设置到屏幕外,看不到了就
      任务栏窗口图标状态 (句柄数组 [1], 1) ' 隐藏状态栏图标
      程序_延时 (200)
      .如果 (方式 = 0)
        加好友操作 (句柄数组 [1]) ' 开始添加好友
      .否则
        加群操作 (句柄数组 [1]) ' 开始添加好友
      .如果结束
      系统_处理事件 ()
    .如果真结束
    系统_处理事件 ()
  .如果真结束
  程序_延时 (2000)
.计次循环尾 ()
返回 (0)
.子程序 判断句柄
.参数 数组, 整数型, 数组
.判断循环首 (取数组成员数 (数组) = 0)
  窗口_模糊遍历窗口 (, “TXGuiFoundation”, “添加”, 数组)
.判断循环尾 ()
' 判断如果添加好友这个窗口存在,那么得到句柄
.子程序 加好友操作
.参数 句柄, 整数型
任务栏窗口图标状态 (句柄数组 [1], 1) ' 隐藏任务栏图标
键盘_消息 (句柄, #回车键, 5) ' 模拟按回车
键盘_消息 (句柄, #回车键, 5)
任务栏窗口图标状态 (句柄数组 [1], 1)
键盘_消息 (句柄, #回车键, 5)
键盘_消息 (句柄, #回车键, 5)
任务栏窗口图标状态 (句柄数组 [1], 1)
键盘_消息 (句柄, #回车键, 5)
键盘_消息 (句柄, #回车键, 5)
任务栏窗口图标状态 (句柄数组 [1], 1)
程序_延时 (2000) ' 基本两秒后就添加好友成功了
窗口_关闭 (句柄) ' 然后关闭
.子程序 任务栏窗口图标状态, 逻辑型, 公开, 参数为1或2时,操作成功返回真,反之假;参数为3时,当前任务栏窗口图标已显示返回真,反之假。
.参数 窗口句柄, 整数型
.参数 参数, 整数型, , 1、隐藏图标;2、显示图标;3、取得当前显示状态
.局部变量 Msg, 整数型, , "7"
.局部变量 hwnd, 整数型
.局部变量 bShow, 逻辑型
.局部变量 bIcon, 逻辑型
.如果真 (IsWindow (窗口句柄) = 假)
  返回 (假)
.如果真结束
.如果真 (参数 = 3)
  hwnd = GetWindowLong (窗口句柄, -8)
  返回 (hwnd = 0 或 GetWindowLong (hwnd, -20) ≠ 384 或 GetWindowLong (hwnd, -16) ≠ 79691776)
.如果真结束
.如果真 (参数 = 2)
  .如果真 (任务栏窗口图标状态 (窗口句柄, 3))
    返回 (真)
  .如果真结束
  bIcon = IsIconic (窗口句柄)
  bShow = IsWindowVisible (窗口句柄)
  hwnd = GetWindowLong (窗口句柄, -8)
  SetWindowLong (窗口句柄, -8, 0)
  PostThreadMessage (GetWindowThreadProcessId (hwnd, 0), 18, 0, 0)
  SendMessage (hwnd, 16, 0, 0)
  SendMessage (窗口句柄, 11, 0, 0)
  ShowWindow (窗口句柄, 7)
  .如果真 (bIcon = 假)
    ShowWindow (窗口句柄, 4)
  .如果真结束
  SendMessage (窗口句柄, 11, 1, 0)
  .如果真 (bShow = 假)
    ShowWindow (窗口句柄, 0)
  .如果真结束
  返回 (真)
.如果真结束
.如果真 (任务栏窗口图标状态 (窗口句柄, 3) = 假)
  返回 (真)
.如果真结束
hwnd = -1
CloseHandle (CreateThread (0, 0, &CreateHideWin, hwnd, 0, 0))
.判断循环首 (hwnd = -1)
  处理事件 ()
.判断循环尾 ()
.如果真 (hwnd = 0)
  返回 (假)
.如果真结束
SetWindowLong (窗口句柄, -8, hwnd)
返回 (真)
.子程序 CreateHideWin
.参数 hwnd, 整数型, 参考
.局部变量 Msg, 整数型, , "7"
.局部变量 WndClass, WNDCLASS
WndClass.style = 3
WndClass.lpfnwndproc = GetProcAddress (GetModuleHandle (“user32.dll”), “DefWindowProcA”)
WndClass.hInstance = GetModuleHandle (WndClass.lpszClassName)
WndClass.hbrBackground = GetStockObject (0)
WndClass.lpszClassName = “HideTaskbar”
RegisterClass (WndClass)
hwnd = CreateWindowEx (384, WndClass.lpszClassName, “”, 79691776, 0, 0, 0, 0, 0, 0, WndClass.hInstance, 0)
.如果真 (hwnd ≠ 0)
  .判断循环首 (GetMessage (Msg, 0, 0, 0) ≠ 0)
    TranslateMessage (Msg)
    DispatchMessage (Msg)
  .判断循环尾 ()
.如果真结束
.子程序 结束添加好友
.局部变量 i, 整数型
窗口_模糊遍历窗口 (, “TXGuiFoundation”, “添加”, 句柄数组) ' 寻找添加好友窗口
.计次循环首 (取数组成员数 (句柄数组), i)
  .如果真 (窗口_句柄是否有效 (句柄数组 [i]))
    窗口_关闭 (句柄数组 [i]) ' 关闭所有添加好友窗口
  .如果真结束
  系统_处理事件 ()
.计次循环尾 ()
.子程序 加群操作
.参数 句柄, 整数型
任务栏窗口图标状态 (句柄数组 [1], 1) ' 隐藏任务栏图标
键盘_消息 (句柄, #Tab键, 5)
键盘_消息 (句柄, #回车键, 5) ' 模拟按回车
键盘_消息 (句柄, #回车键, 5)
任务栏窗口图标状态 (句柄数组 [1], 1)
键盘_消息 (句柄, #回车键, 5)
键盘_消息 (句柄, #回车键, 5)
任务栏窗口图标状态 (句柄数组 [1], 1)
键盘_消息 (句柄, #回车键, 5)
键盘_消息 (句柄, #回车键, 5)
任务栏窗口图标状态 (句柄数组 [1], 1)
程序_延时 (2000) ' 基本两秒后就添加好友成功了
窗口_关闭 (句柄) ' 然后关闭
.子程序 窗口_取标题, 文本型, 公开
.参数 窗口句柄, 整数型
.局部变量 局_缓冲区, 文本型
.局部变量 局_缓冲大小
局_缓冲大小 = GetWindowTextLength (窗口句柄) + 1
局_缓冲区 = 取空白文本 (局_缓冲大小)
GetWindowTextA (窗口句柄, 局_缓冲区, 局_缓冲大小)
返回 (局_缓冲区)
.子程序 窗口_枚举窗口句柄, 整数型, 公开, 通过窗口任务关系来枚举所有窗口,返回窗口句柄数目,失败返回0
.参数 句柄数组, 整数型, 可空 数组, 返回的所有窗口句柄数组
.局部变量 窗口句柄, 整数型
清除数组 (句柄数组)
窗口句柄 = GetWindow (GetDesktopWindow (), 5)
.判断循环首 (窗口句柄 ≠ 0)
  加入成员 (句柄数组, 窗口句柄)
  窗口句柄 = GetWindow (窗口句柄, 2)
.判断循环尾 ()
返回 (取数组成员数 (句柄数组))
.子程序 进程_取ID数组, 整数型, 公开, 取指定进程名称的所有进程的进程ID(返回进程ID数目,没有返回0)
.参数 进程名, 文本型, , 程序进程名
.参数 进程ID数组, 整数型, 参考 数组, 返回的进程ID 数组
.参数 区分大小写, 逻辑型, 可空, 默认不区分进程名大小写
.局部变量 信息, 进程信息列表
.局部变量 进程快照, 整数型
.局部变量 进程句柄, 整数型
清除数组 (进程ID数组)
进程快照 = CreateToolhelp32Snapshot (15, 0)
.如果真 (进程快照 = 0)
  返回 (0)
.如果真结束
信息.dwSize = 1024
进程句柄 = Process32First (进程快照, 信息)
.判断开始 (区分大小写)
  .判断循环首 (进程句柄 ≠ 0)
    .如果真 (进程名 = 到文本 (信息.进程名称))
      加入成员 (进程ID数组, 信息.进程ID)
    .如果真结束
    进程句柄 = Process32Next (进程快照, 信息)
  .判断循环尾 ()
.默认
  .判断循环首 (进程句柄 ≠ 0)
    .如果真 (到小写 (进程名) = 到小写 (到文本 (信息.进程名称)))
      加入成员 (进程ID数组, 信息.进程ID)
    .如果真结束
    进程句柄 = Process32Next (进程快照, 信息)
  .判断循环尾 ()
.判断结束
CloseHandle (进程快照)
返回 (取数组成员数 (进程ID数组))
.子程序 系统_取已登陆QQ号码, 文本型, 公开, 成功返回QQ号码,如果是多个QQ号码以#换行符分开,其他的都返回空
.局部变量 局_窗口标题, 文本型
.局部变量 局_变量文本, 文本型
.局部变量 局_分割的文本, 文本型, , "0"
.局部变量 局_进程ID数目, 整数型
.局部变量 计次, 整数型
.局部变量 i, 整数型
.局部变量 局_进程ID数组, 整数型, , "0"
.局部变量 局_窗口数目, 整数型
局_进程ID数目 = 进程_取ID数组 (“QQ.exe”, 局_进程ID数组)
计次 = 1
局_窗口数目 = 窗口_枚举窗口句柄 (局_进程ID数组)
.计次循环首 (局_窗口数目, i)
  局_窗口标题 = 窗口_取标题 (局_进程ID数组 [i])
  .如果真 (寻找文本 (局_窗口标题, “qqexchangewnd_shortcut_prefix”, , 假) ≠ -1)
    局_分割的文本 = 分割文本 (局_窗口标题, “_”, )
    .判断开始 (计次 = 局_进程ID数目)
      局_变量文本 = 局_变量文本 + 局_分割的文本 [取数组成员数 (局_分割的文本)]
      计次 = 计次 + 1
    .默认
      局_变量文本 = 局_变量文本 + 局_分割的文本 [取数组成员数 (局_分割的文本)] + #换行符
      计次 = 计次 + 1
    .判断结束
  .如果真结束
  .如果真 (计次 > 局_进程ID数目)
    跳出循环 ()
  .如果真结束
.计次循环尾 ()
返回 (局_变量文本)

运行结果:

总结

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

声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:notice#nhooo.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。