按键精灵多线程子程序调用不了

'++++++++++++++++++++++++++++++++++++++++++++++++++Hwnd=Plugin.Window.Find(0,"大话西游手游"... '++++++++++++++++++++++++++++++++++++++++++++++++++
Hwnd = Plugin.Window.Find(0, "大话西游手游")
sRect = Plugin.Window.GetClientRect(Hwnd)
MyArray = Split(sRect, "|")
Dim MyArray
Ux=CLng(MyArray(0))
Uy = CLng(MyArray(1))
//++++++++++++++++++线程++++++++++++++++
For 1
Call 帮派任务()
Next
'++++++++++++++++++++++(帮派任务,子程序和多线程)++++++++++++++++++++++++++++
Sub 帮派任务()
MoveTo Ux + 990, Uy + 100
Delay 500
LeftClick 2
Delay 500
KeyDownH 18, 1
KeyPress 66, 1
KeyUp 18, 1
Delay 1500
IfColor 139+Ux,636+Uy,"92BA3F",0 Then
MoveTo 139 + Ux, 636 + Uy
Delay 1000
End If
MoveTo Ux + 136, Uy + 635
Delay 500
LeftClick 1
Delay 1500
MoveTo Ux + 144, Uy + 79
Delay 1000
LeftClick 1
Delay 1500
MoveTo Ux + 753, Uy + 259
Delay 1000
LeftClick 1
Delay 5000
MoveTo Ux + 781, Uy + 455
Delay 1000
LeftClick 1
Delay 1000
线程ID帮派任务 = BeginThread(一级多线程帮派任务)
Delay 840000
End Sub
Sub 一级多线程帮派任务()
Do
IfColor 783 + Ux, 463 + Uy, "A6E8FF", 0 Then'战斗判断
MoveTo 783 + Ux, 463 + Uy
Delay 1000
LeftClick 1
End If
IfColor 748+Ux,604+Uy,"8DB834",0 Then'购买判断
MoveTo 748 + Ux, 604 + Uy
Delay 1000
LeftClick 1
End If
IfColor 550 + Ux, 196 + Uy, "2D63A4", 0 Then
Delay 10000
IfColor 550 + Ux, 196 + Uy, "2D63A4", 0 Then
Delay 10000
IfColor 550+Ux,196+Uy,"2D63A4",0 Then
End If
End If
End If
Loop
End Sub
为什么没办法启动多线程 Sub 一级多线程帮派任务() 是不是要一个多线程环境变量?我应该怎么写环境变量
展开
 我来答
帐号已注销
2018-05-21 · TA获得超过1.1万个赞
知道大有可为答主
回答量:6449
采纳率:69%
帮助的人:2182万
展开全部

线程肯定启动了,你把鼠标移到右下角按键精灵那里,会发现出现两个你文件名的任务:

例如我这里的脚本描述是“其他任务”,启动两个线程(当然包括脚本启动),所以看到是两个“其他任务”。

你这里线程没有效果,是因为颜色不相等,所以就没执行鼠标键盘操作。原因就是变量问题,你线程里面的Ux,Uy是在线程外部引入的,线程开启后,线程所有的变量和外部是独立的,所以外部的Ux,Uy不能传进线程里面。因此要想把外部变量传入线程,就要在脚本开始定义环境变量

在最前面加上:Dimenv Ux, Uy

还有,你线程里面的循环比较颜色没有延时,所以假如颜色不相等,CPU使用率会剧增,因此最好在Loop上面加一句Delay 5,适当延时可以减小CPU使用率。

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式