[已解决]if then elseif then end 语句问题
本帖最后由 pdp320921 于 2011-3-20 17:35 编辑If WinWaitActive("CTest - InstallShield Wizard","Setup Type") Then
Send("{ENTER}")
WinWaitActive("CTest - InstallShield Wizard","Choose Destination Location")
Send("{ENTER}")
WinWaitActive("CTest - InstallShield Wizard","Select Program Folder")
Send("{ENTER}")
Send("{ENTER}")
Send("{ENTER}")
Send("{ENTER}")
ElseIf WinWaitActive("Confirm Uninstall","Do you want to completely") Then
Send("{TAB}")
Send("{ENTER}")
EndIf上述代码好像不能跳到下一步,if 完后不会继续执行下面的Elseif语句?
请教高手~~ While 1
If WinActive("CTest - InstallShield Wizard","Setup Type") Or WinActive("Confirm Uninstall","Do you want to completely") Then ExitLoop
Sleep(10)
WEnd
If WinActive("CTest - InstallShield Wizard","Setup Type") Then
Send("{ENTER}")
WinWaitActive("CTest - InstallShield Wizard","Choose Destination Location")
Send("{ENTER}")
WinWaitActive("CTest - InstallShield Wizard","Select Program Folder")
Send("{ENTER}")
Send("{ENTER}")
Send("{ENTER}")
Send("{ENTER}")
ElseIf WinActive("Confirm Uninstall","Do you want to completely") Then
Send("{TAB}")
Send("{ENTER}")
EndIf While 1
If WinActive("CTest - InstallShield Wizard","Setup Type") Or WinActive("Confirm Uninstall","Do you want to completely") Then ExitLoop
Sleep(10)
WEnd
多了这一行,有这么大作用? 本帖最后由 netegg 于 2011-3-2 19:55 编辑
这个用if解决不了
建议使用
select
case WinActive("CTest - InstallShield Wizard","Setup Type")
....
continuecase
case WinActive("Confirm Uninstall","Do you want to completely")
...
endselect
或者就别用else
if then
。。。。
if then
。。。。
endif
endif if ... elseif....
本来就是两个条件只执行其一,看那个条件为真。
你要是想执行完了if后的接着执行elseif,那用两个if...endif 回复5#
我有试着换成 用两个if...endif可还是不能顺序执行,不能执行下一步啊 回复 6# pdp320921
关键是你怎么用的呀 If WinWaitActive("CTest - InstallShield Wizard","Setup Type") Then
Send("{ENTER}")
WinWaitActive("CTest - InstallShield Wizard","Choose Destination Location")
Send("{ENTER}")
WinWaitActive("CTest - InstallShield Wizard","Select Program Folder")
Send("{ENTER}")
Send("{ENTER}")
Send("{ENTER}")
Send("{ENTER}")
Endif
If WinWaitActive("Confirm Uninstall","Do you want to completely") Then
Send("{TAB}")
Send("{ENTER}")
EndIf如上,也不能顺序执行 回复 6# pdp320921
WinWaitActive = 暂停脚本的执行,直到请求的窗口处于激活状态为止.
WinActive = 检查指定窗口是否存在且被激活.
错在哪里你应该明白了吧. 回复 3# pdp320921
看清楚是只多了这么几行吗?
问题出在WinWaitActive 还是不知道,本人菜鸟If WinActive("CTest - InstallShield Wizard") Then
WinWaitActive("CTest - InstallShield Wizard")
Send("{ENTER}")
WinWaitActive("CTest - InstallShield Wizard","Choose Destination Location")
Send("{ENTER}")
WinWaitActive("CTest - InstallShield Wizard","Select Program Folder")
Send("{ENTER}")
Send("{ENTER}")
Send("{ENTER}")
Send("{ENTER}")
ElseIf WinActive("Confirm Uninstall") Then
WinWaitActive("Confirm Uninstall")
Send("{TAB}")
Send("{ENTER}")
EndIf恳请大侠帮忙~~
if 后面的语句elseif无法继续进行~~
都纠结了几天了,汗~~ 5楼那里已经把你代码不能正常执行的原因说清楚了.
if...else...end要是执行了if的,就不会再执行else的.所以你后面那一段的代码是不可能再执行的.
另外,9楼和10楼的——你看明白了吗安装向导你点下一步以后,错误肯定不是马上弹出来的. 回复 11# pdp320921
if <条件1> then
elseif <条件2> then
endif
如果条件1满足执行完条件1就完了
条件2就不管了
你要是在条件1不满足的情况下换条件
if
else
if
else
endif
endif 我大概理解一下:你想用IF THEN ELSEIF ENDIF 却发现IF里的执行了N而ELSEIF里的就没执行。原因是你没理解IF 的用法;还有,你那个winactive,是不会让程序等待运行的,简单来说,程序到了IF 这一句,只会判断一次
IF winactive 为真 then
Elseif 另一条件为真 then
Else 上面都不为真时
Endif 这个处于同一优先级,同一条件要么执行1,要么执行2.不可能先执行1再执行2.除非增加条件,也就是采用循环方式增加条件,再就是语法上还却个"Else"语句
页:
[1]
2