[已解决]请教关于Adlib函数的问题,请DX们帮帮忙
:face (13): 在学习Adlib函数的时候,有点小疑问。小弟在用这个函数的时候,没搞懂意思,在写极点五笔的时候遇到一点小问题,运行脚本到最后一步的时候,没办法结束,代码如下:
--------------------------------------------------------------------------------------------
run("freeime")
WinWaitActive("freeime 6.5标准版 安装 ","许可证协议")
ControlClick("freeime 6.5标准版 安装 ","许可证协议","Button2")
WinWaitActive("freeime 6.5标准版 安装 ","选择安装位置")
send("!I")
AdlibEnable("Kill")
WinWaitActive("提示","中文 (国际版) - 极点五笔安装成功!");好象在这里就停下了,晕啊!
ControlClick("提示","中文 (国际版) - 极点五笔安装成功!","Button1")
Func Kill()
if WinWaitActive("freeime 6.5标准版 安装","在开始菜单中建立极点程序组么?") Then
send("!N")
EndIf
EndFunc
小弟先谢过了!!
[ 本帖最后由 aghost 于 2009-3-18 13:43 编辑 ] AdlibEnable("Kill")
这个不是多线程,AU3是伪编译,属于解释型语言,不能支持多线程。
你在KILL函数里,必须返回后,程序才会向下执行。
WinWaitActive("freeime 6.5标准版 安装","在开始菜单中建立极点程序组么?")
看这里,如果这个窗口不出现,你就就卡在这了。 WinWaitActive("freeime 6.5标准版 安装","在开始菜单中建立极点程序组么?")
这个窗口是安装时会出现的东东啊!而且send("!N")也有效,是不是我没有添加AdlibDisable啊 其实并不是非要用这个函数,不用它也能写成,我就是想学一下Adlib这个函数的用法,看了帮助文件好象不太懂,就自己写一个,结果就真的出现问题了,DX能不能给我讲一下这个函数啊,谢谢了!!! 大哥这个函数是每隔多少时间运行 也就是说 这个函数不会某一段代码处停留做循环
而是会继续向下执行后面的代码 所以说不能用这个函数
而且结束这个函数要用Adlibdisable()
这理推荐你用do Until 或者While 1 wend(在循环中获取下一个窗口状态或者其他做判断)
[ 本帖最后由 xrbenbeba 于 2009-3-14 21:23 编辑 ] 谢谢,大侠! ifWinWaitActive
ifWinActive 原帖由 akmm88 于 2009-3-14 17:58 发表 http://www.autoitx.com/images/common/back.gif
AdlibEnable("Kill")
这个不是多线程,AU3是伪编译,属于解释型语言,不能支持多线程。
你在KILL函数里,必须返回后,程序才会向下执行。
WinWaitActive("freeime 6.5标准版 安装","在开始菜单中建立极点程序 ...
不能一概而论吧,java也是解释型语言啊!不也可以支持多线程. AdlibEnable 函数类似定时器,偶觉得挺有用的,特别是要延时(不固定的情况下)特别有用,
单片机常用这个 原帖由 ceoguang 于 2009-3-15 14:54 发表 http://www.autoitx.com/images/common/back.gif
不能一概而论吧,java也是解释型语言啊!不也可以支持多线程.
java是虚拟机, 不是伪编译.
页:
[1]