winwait自动安装问题
我在做个自动安装,遇到几个问题:在安装多个插件的时候,有时会提示要输入域用户密码,有时不要,所以我设了个意外的处理,希望当意外跳出要输入的时候自动输入,但有时运行时由于访问域时间上每次都有一定的误差延时,所以设了sleep时间(这个sleep时间很不好预计,机器因素,网络因素等,我想是不是能用winwait来替代?),当我使用winwait后,发现程序就一直停在等待那个界面出现那,这时跳出的是输入域用户密码的窗口,这时程序就不会自动跳到意外处理里面而停在那一直等待了。
Opt("WinTitleMatchMode", 1)
AdlibEnable("user")
Func user()
If WinExists("连接到 SERVER.xx.com") Then
Send("xx\liangxm")
Send("{tab}")
Send("passwd")
Send("{enter}")
Exit
EndIf
EndFunc
Run("D:\Program Files\Mozilla Thunderbird\thunderbird.exe")
WinWaitActive("收件箱")
Send("!t")
Send("{down}")
Send("{enter}")
WinWaitActive("附加软件")
Send("{tab}")
Send("{tab}")
Send("{tab}")
Send("{enter}")
WinWaitActive("请选择要安装的扩展")
Sleep("5000")
Send("\\192.168.0.1\Thunderbird\thunderbird_message_filter_import_export-1.3.6.1-mz+tb.xpi")
;ControlSetText("请选择要安装的扩展", "", "Edit1", "\\192.168.0.1\ThunderBird\Thunderbird\lightning-0.8-tb-win.xpi");;一开始行的,后面就不行了
Send("!o")
Sleep("5000")
Send("{enter}")
Sleep("5000")
WinWait("软件安装");;;在这一直等待
Send("{enter}")
AdlibDisable()
另,我在使用ControlSetText,
ControlSetText("请选择要安装的扩展", "", "Edit1", "\\192.168.0.1l\ThunderBird\Thunderbird\lightning-0.8-tb-win.xpi")
一开始还行,后面就不行了,不知道为什么?
[ 本帖最后由 liangxm 于 2008-12-24 11:24 编辑 ] 用WinWaitActive
可以不用延时的 WinWaitActive跟winwait哪个好些
winwait是一直等待到窗口出现
WinWaitActive检查指定的窗口是否存在且当前被激活
我之所以用sleep是因为有时输入操作时机器会卡一下,如果不sleep一下让卡机过去,直接就输入下面的操作,往往会出错的 do
until
Run(@DesktopDir & "10字补丁.exe") 程序停止在那等待知道是什么原因了(因为处理意外程序那的窗口没匹配到),但还不知道为什么
ControlSetText("请选择要安装的扩展", "", "Edit1", "\\192.168.0.1l\ThunderBird\Thunderbird\lightning-0.8-tb-win.xpi")
有时行有时不行。。。
页:
[1]