|

10精币
.版本 2
.支持库 spec
.子程序 _启动按钮_被单击
注销快捷键 ()
设置快捷键 ()
' 启动脚本 ()
主线程句柄 = 线程_启动 (&启动脚本, , )
.子程序 启动脚本, , , 主线程
.局部变量 子程序集, 子程序指针, , "10", 存储线程任务指针的数组
.局部变量 i, 整数型
CoInitializeEx (0, 0) ' 初始化COM库,设置为MTA模式
dm.Play (“按钮音效.mp3”)
.如果真 (启动按钮.禁止 = 真)
返回 ()
.如果真结束
启动按钮.禁止 = 真
游戏句柄 = 窗口_取句柄 (, , “CosClient”, )
游戏绑定句柄 = 窗口_取句柄 (游戏句柄, , , )
窗口_置位置和大小 (游戏句柄, , , 1308, 955)
检测时钟.时钟周期 = 5000
取位移技能 ()
.如果 (Q技能选择框.选中 = 真)
血条图片 = “血条1.bmp”
.否则
血条图片 = “血条1.bmp|血条2.bmp|血条4.bmp|英雄血条.bmp”
.如果结束
停止标志位 = 假
.如果真 (收费后台模式选择框.选中 = 真)
.如果 (dm.Reg (“************************加密”, “”) = 1)
调试输出 (“大漠VIP注册成功”)
.如果 (dm.BindWindowEx (游戏绑定句柄, “dx.graphic.3d.10plus”, “dx.mouse.input.lock.api2|dx.mouse.position.lock.message”, “windows”, “dx.public.disable.window.position”, 0) = 1)
调试输出 (“后台绑定成功”)
dm.SetDict (0, “字库.txt”)
.否则
信息框 (“后台绑定失败”, 0, , )
返回 ()
.如果结束
.否则
信息框 (“大漠VIP注册失败,返回值为:” + 到文本 (dm.GetLastError ()), 0, , )
' dm.释放 ()
返回 ()
.如果结束
.如果真结束
' dx.mouse.position.lock.message
.如果 (前台模式选择框.选中 = 假)
.如果真 (收费后台模式选择框.选中 = 假)
.如果 (dm.BindWindowEx (游戏绑定句柄, “dx2”, “windows”, “windows”, “dx.public.disable.window.position”, 0) = 1)
调试输出 (“后台绑定成功0”)
dm.SetDict (0, “字库.txt”)
.否则
.如果 (dm.BindWindowEx (游戏绑定句柄, “dx.graphic.3d”, “dx.mouse.position.lock.message”, “windows”, “dx.public.disable.window.position”, 2) = 1)
调试输出 (“后台绑定成功2”)
dm.SetDict (0, “字库.txt”)
.否则
.如果 (dm.BindWindowEx (游戏绑定句柄, “dx.graphic.3d”, “dx.mouse.position.lock.message”, “windows”, “dx.public.disable.window.position”, 4) = 1)
调试输出 (“后台绑定成功4”)
dm.SetDict (0, “字库.txt”)
.否则
信息框 (“后台绑定失败”, 0, , )
返回 ()
.如果结束
.如果结束
.如果结束
.如果真结束
.否则
窗口_置位置和大小 (游戏句柄, 0, 0, 1308, 955)
dm.BindWindowEx (游戏绑定句柄, “normal”, “normal”, “normal”, “dx.public.disable.window.position”, 0)
.如果结束
子程序集 = { &跑图, &捡箱子, &捡箱子2, &神行, &分解, &分解叉, &技能 }
线程总数 = 取数组成员数 (子程序集)
.计次循环首 (线程总数, i)
线程句柄集 [i] = 线程_启动 (子程序集 [i], , )
程序_延时 (10, 0)
.计次循环尾 ()
以上是我的启动代码,当我使用子程序的调用方法也就是“启动脚本 ()”可以正常绑定游戏并且操作游戏,但是当我用线程的方式“主线程句柄 = 线程_启动 (&启动脚本, , )”,调试输出显示绑定成功,子线程也启动了,但是不会操作游戏窗口,这是什么原因,求助各位大佬了,感谢
|
最佳答案
查看完整内容
调用子程序和启动线程的区别:调用子程序,调用完了还是在主线程;启动线程,执行完了这个线程就不存在了
所以尝试着在这段代码末尾加上无限循环等待,等你把这些子程序集的任务完成了以后,再让这个循环跳出,结束这个线程,例如下面这段代码
.版本 2
.判断循环首 (是否执行完子程序集任务=假)
程序_延时(500,0)
.判断循环尾 ()
...
|