文章目录[隐藏]
前两课程的多线程,我们都是采用了乐玩插件的单线程类模块,在程序集里把乐玩变量声明成数组,而本课我们需要单独封装开一个乐玩多线程程序集模块,含有索引,这里又有两种方法,第一种在程序集里释放乐玩插件,第二种依赖于类单线程模块。本课视频时在程序集单独释放乐玩插件。
乐玩插件多线程模块源码:
.版本 2
.程序集 集多线程
.程序集变量 obj, 对象, , "100"
.子程序 乐玩释放, , 公开, 每个辅助释放一次就可以,不需要加索引
.局部变量 DLL路径, 文本型
DLL路径 = 取运行目录 () + “\Obj\lw.dll”
创建目录 (取运行目录 () + “\Obj”)
写到文件 (DLL路径, #lwdll)
置文件属性 (DLL路径, 1 + 2 + 4 + 32)
运行 (“regsvr32 ” + DLL路径 + “ /s”, 真, 1)
.子程序 乐玩创建, 逻辑型, 公开
.参数 索引
返回 (obj [索引].创建 (“lw.lwsoft3”, ))
.子程序 BindWindow, 整数型, 公开, 0:失败,1:成功
.参数 hwnd
.参数 display
.参数 mouse
.参数 keypad
.参数 added
.参数 mode
.参数 索引
返回 (obj [索引].数值方法 (“BindWindow”, hwnd, display, mouse, keypad, added, mode))
.子程序 ver, 文本型, 公开
.参数 索引
返回 (obj [索引].文本方法 (“ver”, ))
.子程序 DownCpu, 整数型, 公开, 0:失败,1:成功
.参数 rate
.参数 索引
返回 (obj [索引].数值方法 (“DownCpu”, rate))
.子程序 KeyPress, 整数型, 公开, 0:失败,1:成功
.参数 vk_code
.参数 num
.参数 索引
返回 (obj [索引].数值方法 (“KeyPress”, vk_code, num))
.子程序 EnumWindow, 文本型, 公开
.参数 title, 文本型
.参数 class, 文本型
.参数 processname, 文本型
.参数 pid
.参数 fhwnd
.参数 isvisble
.参数 exacttitle
.参数 索引
返回 (obj [索引].文本方法 (“EnumWindow”, title, class, processname, pid, fhwnd, isvisble, exacttitle))
.子程序 UnBindWindow, 整数型, 公开, 0:失败,1:成功
.参数 索引
返回 (obj [索引].数值方法 (“UnBindWindow”, ))
乐玩多线程模块调用
.版本 2 .支持库 spec .支持库 EThread .子程序 多线程绑定 .局部变量 m, 整数型 .局部变量 游戏句柄, 文本型 ' 1、获取游戏窗口句柄 游戏句柄 = EnumWindow (“剑侠情缘·网络版”, “Sword3 Class”, “gamefree.exe”, 0, 0, 0, 0, 1) 调试输出 (游戏句柄) hwnd = 分割文本 (游戏句柄, “,”, ) .计次循环首 (取数组成员数 (hwnd), m) ' 有几个游戏就得创建就几个乐玩对象 乐玩创建 (m) ' 设置全局路径 ' 设置字库 ' 屏蔽弹窗错误 ' 获取句柄 ' 绑定游戏 调试输出 (hwnd [m]) .判断开始 (BindWindow (到整数 (hwnd [m]), 4, 1, 1, 0, 0, m) = 1) ' 降低CPU DownCpu (60, m) ' 启动线程 启动线程 (&主线程, m, ) .默认 .判断结束 .计次循环尾 () .子程序 主线程 .参数 d ' 这里就是游戏辅助的环节 跑路 (d) 对话 (d) 打怪 (d) UnBindWindow (d) .子程序 跑路 .参数 数组序号 .计次循环首 (10, ) KeyPress (114, 1, 数组序号) 延时 (1000) .计次循环尾 () .子程序 对话 .参数 数组序号 .计次循环首 (10, ) KeyPress (115, 1, 数组序号) 延时 (1000) .计次循环尾 () .子程序 打怪 .参数 数组序号 .计次循环首 (10, ) KeyPress (116, 1, 数组序号) 延时 (1000) .计次循环尾 ()
教程下载:
链接:https://pan.baidu.com/s/1Z-GwQ84X7iccpK3NngsPZQ
提取码:加QQ群:521068947 群文件下载