首先把dm变量定义成数组,线程句柄,线程ID都定义成数组。html
而后经过进程_取ID数组 (“gamefree.exe”, process_id, )获取全部游戏窗口的句柄ID加入数组process_id,而后经过取数组成员数,肯定开了几个游戏窗口,对相关数组从新定义下标。经过进程ID取建立句柄,分别获取相应窗口句柄,进行后台绑定。windows
易语言源码:数组
.版本 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
源码参考:第四课易语言大漠多线程绑定和打怪(方法二)多线程