找回密码
 加入
搜索
查看: 2163|回复: 12

新手求助

[复制链接]
发表于 2009-6-3 08:56:01 | 显示全部楼层 |阅读模式
写了一个自动安装程序,但是,不知道为什么elseif部分符合条件也不执行,单独写就好使,代码如下
Run("a.exe")

If WinWaitActive("a","下一步") Then
send("!N")
WinWaitActive("a","我同意")
send("!A")
WinWaitActive("a","下一步")
send("!N")
WinWaitActive("a","下一步")
send("!N")
WinWaitActive("a","关闭")
send("!C")
Exit
ElseIf WinWaitActive("a","完成") Then
send("!F")
WinWaitActive("a","关闭")
send("!C")
Exit
EndIf
发表于 2009-6-3 11:05:26 | 显示全部楼层
问题出在:

WinWaitActive :暂停脚本的执行直至指定窗口被激活(成为活动状态)为止.
你再好好读这句话。

以上是我的理解。供你参考。
发表于 2009-6-3 11:05:34 | 显示全部楼层
问题出在:

WinWaitActive :暂停脚本的执行直至指定窗口被激活(成为活动状态)为止.
你再好好读这句话。

以上是我的理解。供你参考。
发表于 2009-6-3 11:15:20 | 显示全部楼层
本帖最后由 javarike 于 2009-6-3 11:16 编辑

修改了一下:
Run("a.exe")

If WinWaitActive("a","下一步") Then
send("!N")
WinWaitActive("a","我同意")
send("!A")
WinWaitActive("a","下一步")
send("!N")
WinWaitActive("a","下一步")
send("!N")
WinWaitActive("a","关闭")
send("!C")
;Exit  -----------这个EXIT有什么用?去掉!
ElseIf WinExists("a","完成") Then
send("!F")
WinWaitActive("a","关闭")
send("!C")
Exit
EndIf
WinExists :检查指定的窗口是否存在.
 楼主| 发表于 2009-6-3 15:17:39 | 显示全部楼层
我怎么试WinExists不起作用哪
Run("a.exe")
If WinExists("a","下一步") Then
        MsgBox(0, "", "Window not active")
EndIf
发表于 2009-6-3 15:18:25 | 显示全部楼层
根本没必要用if then
多余
 楼主| 发表于 2009-6-3 15:29:32 | 显示全部楼层
安装程序,如果机器上已有此安装程序,弹出的界面与第一次安装不一样,因此用的if。
发表于 2009-6-3 15:41:02 | 显示全部楼层
那用AdlibEnable 、 AdlibDisable 伪多线程去检测不是更好
AdlibEnable("myadlib")

Func myadlib()
    If WinActive("已经安装--只是举例而已") Then
        Exit ;如果出现已经安装的提示窗口,就推出安装
    EndIf
EndFunc

AdlibDisable("myadlib")
放到安装脚本的前面作为检测

复杂一点的示例:
http://www.autoitx.com/forum.php?mod=viewthread&tid=5642
 楼主| 发表于 2009-6-3 16:06:29 | 显示全部楼层
想知道为什么我用WinExists函数无法检查当前窗口是否为指定窗口哪,是我用的不正确吗,
发表于 2009-6-3 16:30:06 | 显示全部楼层
Run("a.exe")
If WinWaitActive("a","下一步") Then
什么是a???
a是标题吗?
如果不是
请你回去好好翻下帮助文件
 楼主| 发表于 2009-6-3 16:41:45 | 显示全部楼层
当然是标题了。
发表于 2009-6-3 22:33:08 | 显示全部楼层
想知道为什么我用WinExists函数无法检查当前窗口是否为指定窗口哪,是我用的不正确吗,
qiusuo808 发表于 2009-6-3 16:06

WinExists是检查指定的窗口是否存在
要检查当前窗口是否为指定窗口用WinActive
发表于 2009-6-7 11:34:21 | 显示全部楼层
我怎么试WinExists不起作用哪
Run("a.exe")
If WinExists("a","下一步") Then
        MsgBox(0, "", "Window not active")
EndIf
qiusuo808 发表于 2009-6-3 15:17


很明显他用了进程名来做标题了...我举例子而已..
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-9-23 03:14 , Processed in 0.076501 second(s), 21 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表