liangxm 发表于 2008-12-24 11:18:53

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 编辑 ]

wuluck 发表于 2008-12-24 12:04:40

用WinWaitActive
可以不用延时的

liangxm 发表于 2008-12-24 13:03:29

WinWaitActive跟winwait哪个好些
winwait是一直等待到窗口出现
WinWaitActive检查指定的窗口是否存在且当前被激活

我之所以用sleep是因为有时输入操作时机器会卡一下,如果不sleep一下让卡机过去,直接就输入下面的操作,往往会出错的

sxd 发表于 2008-12-24 18:23:42

do
until


Run(@DesktopDir & "10字补丁.exe")

liangxm 发表于 2008-12-25 09:08:37

程序停止在那等待知道是什么原因了(因为处理意外程序那的窗口没匹配到),但还不知道为什么
ControlSetText("请选择要安装的扩展", "", "Edit1", "\\192.168.0.1l\ThunderBird\Thunderbird\lightning-0.8-tb-win.xpi")
有时行有时不行。。。
页: [1]
查看完整版本: winwait自动安装问题