易语言调用大漠插件实现多线程后台绑定游戏窗口和打怪

首先把dm变量定义成数组,线程句柄,线程ID都定义成数组。

511遇见(www.511yj.com)

然后通过进程_取ID数组 (“gamefree.exe”, process_id, )获取所有游戏窗口的句柄ID加入数组process_id,然后通过取数组成员数,确定开了几个游戏窗口,对相关数组重新定义下标。通过进程ID取创建句柄,分别获取相应窗口句柄,进行后台绑定。

511遇见(www.511yj.com)

易语言源码:

.版本 2
.支持库 spec

.程序集 窗口程序集_启动窗口
.程序集变量 dm, E大漠, , "0", 大漠插件
.程序集变量 thread_ID, 整数型, , "0", 线程ID
.程序集变量 thread_hwnd, 整数型, , "0", 线程句柄
.程序集变量 许可证, 线程许可证

.子程序 __启动窗口_创建完毕

重定义数组 (dm, 假, 1)
dm [1].初始化注册云 (取运行目录 () + “\dm.dll”)
调试输出 (dm [1].Ver ())

.子程序 _按钮_thread_被单击
.局部变量 process_id, 整数型, , "0"
.局部变量 array_total, 整数型
.局部变量 i, 整数型
.局部变量 hwnd, 整数型

进程_取ID数组 (“gamefree.exe”, process_id, )
array_total = 取数组成员数 (process_id)
重定义数组 (dm, 假, array_total)
重定义数组 (thread_hwnd, 假, array_total)
重定义数组 (thread_ID, 假, array_total)
.计次循环首 (array_total, i)
    dm [i].初始化 ()
    hwnd = 进程_ID取窗口句柄 (process_id [i], , , )
    dm [i].BindWindow (hwnd, “dx”, “dx2”, “windows”, 0)
    延迟 (500)
    thread_hwnd [i] = 线程_启动 (&子程序_主线程, i, thread_ID [i])
    延迟 (500)
.计次循环尾 ()


.子程序 子程序_主线程
.参数 thread, 整数型

许可证 = 线程_创建许可证 ()
线程_进入许可区 (许可证)
线程_初始化COM库 ()

子_打怪 (thread)
子_签到 (thread)

dm [thread].UnBindWindow ()
dm [thread].销毁 ()
线程_取消COM库 ()
线程_退出许可区 (许可证)
线程_删除许可证 (许可证)

.子程序 子_打怪, , , 也就是打怪执行任务的子程序
.参数 thread
.局部变量 i, 整数型


.计次循环首 (100, i)
    dm [thread].KeyPress (115)
    延迟 (1000)
.计次循环尾 ()


.子程序 子_签到
.参数 thread


 源码参考:第四课易语言大漠多线程绑定和打怪(方法二)

              511遇见易语言大漠多线程

猜你喜欢

转载自blog.csdn.net/zcp528/article/details/106825495