qiusuo808 发表于 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

boyhong 发表于 2009-6-3 11:05:26

问题出在:

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

以上是我的理解。供你参考。

boyhong 发表于 2009-6-3 11:05:34

问题出在:

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

以上是我的理解。供你参考。

javarike 发表于 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 :检查指定的窗口是否存在.

qiusuo808 发表于 2009-6-3 15:17:39

我怎么试WinExists不起作用哪
Run("a.exe")
If WinExists("a","下一步") Then
        MsgBox(0, "", "Window not active")
EndIf

lynfr8 发表于 2009-6-3 15:18:25

根本没必要用if then
多余

qiusuo808 发表于 2009-6-3 15:29:32

安装程序,如果机器上已有此安装程序,弹出的界面与第一次安装不一样,因此用的if。

lynfr8 发表于 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

qiusuo808 发表于 2009-6-3 16:06:29

想知道为什么我用WinExists函数无法检查当前窗口是否为指定窗口哪,是我用的不正确吗,

lynfr8 发表于 2009-6-3 16:30:06

Run("a.exe")
If WinWaitActive("a","下一步") Then
什么是a???
a是标题吗?
如果不是
请你回去好好翻下帮助文件
:face (9):

qiusuo808 发表于 2009-6-3 16:41:45

当然是标题了。

sxd 发表于 2009-6-3 22:33:08

想知道为什么我用WinExists函数无法检查当前窗口是否为指定窗口哪,是我用的不正确吗,
qiusuo808 发表于 2009-6-3 16:06 http://www.autoitx.com/images/common/back.gif
WinExists是检查指定的窗口是否存在
要检查当前窗口是否为指定窗口用WinActive

javarike 发表于 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 http://www.autoitx.com/images/common/back.gif

很明显他用了进程名来做标题了...我举例子而已..
页: [1]
查看完整版本: 新手求助