小新同学 发表于 2009-4-19 13:59:47

双击程序弹出属性窗口,键盘失效!

Run('H3C.exe')
$hd="H3C 802.1X 客户端 - InstallShield Wizard"
WinWait($hd,"欢迎使用 H3C 802.1X 客户端 InstallShield Wizard")
if Not WinActive($hd,"欢迎使用 H3C 802.1X 客户端 InstallShield Wizard") Then WinActivate($hd,"欢迎使用 H3C 802.1X 客户端 InstallShield Wizard")
WinWaitActive($hd,"欢迎使用 H3C 802.1X 客户端 InstallShield Wizard")
ControlClick($hd,"欢迎使用 H3C 802.1X 客户端 InstallShield Wizard","Button1")
Send("!n")
WinWait($hd,"许可协议")
if Not WinActive($hd,"许可协议") Then WinActivate($hd,"许可协议")
WinWaitActive($hd,"许可协议")
ControlClick($hd,"许可协议","Button5")
Send("!n")
WinWait($hd,"客户信息")
if not WinActivate($hd,"客户信息") Then WinActivate($hd,"客户信息")
WinActivate($hd,"客户信息")
ControlSetText($hd,"客户信息","Edit1","")
ControlSetText($hd,"客户信息","Edit2","")
ControlSend($hd,"客户信息","Edit1","PC0624")
ControlSend($hd,"客户信息","Edit2","pc0624")
Send("!n")
WinWait($hd,"安装类型")
if not WinActivate($hd,"安装类型") then WinActivate($hd,"安装类型")
WinActivate($hd,"安装类型")
ControlClick($hd,"安装类型","Button4")
Send("!n")
WinWait($hd,"可以安装该程序了")
if not WinActivate($hd,"可以安装该程序了") then WinActivate($hd,"可以安装该程序了")
WinActivate($hd,"可以安装该程序了")
ControlClick($hd,"可以安装该程序了","Button1")
Send("{enter}")
WinWait($hd,"InstallShield Wizard 完成")
if not WinActivate($hd,"InstallShield Wizard 完成") then WinActivate($hd,"InstallShield Wizard 完成")
WinActivate($hd,"InstallShield Wizard 完成")
ControlClick($hd,"InstallShield Wizard 完成","Button2")
Send("{enter}")


麻烦大家帮我看看这脚本是怎么了·~~有时候运行第二次的时候就会导致双击程序弹出属性窗口,键盘失效的???按一下alt键之后又恢复正常了,还有请问怎么能够让一个脚本运行完成之后就自动关闭的啊?好像每次运行完成之后都会在桌面右下角的?谢谢大家~~~

lynfr8 发表于 2009-4-19 19:18:33

会自动结束脚本

不行就加Exit
另外
WinWait($hd,"InstallShield Wizard 完成")
if not WinActivate($hd,"InstallShield Wizard 完成") then WinActivate($hd,"InstallShield Wizard 完成")
类似这两句的可以删除
留WinWaitActive($hd,"InstallShield Wizard 完成")就可以了

修改后代码,你试试能否顺利运行并退出?
Run('H3C.exe')
$hd="H3C 802.1X 客户端 - InstallShield Wizard"
WinWaitActive($hd,"欢迎使用 H3C 802.1X 客户端 InstallShield Wizard")
ControlClick($hd,"欢迎使用 H3C 802.1X 客户端 InstallShield Wizard","Button1")
Send("!n")
WinWaitActive($hd,"许可协议")
ControlClick($hd,"许可协议","Button5")
Send("!n")
WinWaitActive($hd,"客户信息")
ControlSetText($hd,"客户信息","Edit1","PC0624");这里修改下
ControlSetText($hd,"客户信息","Edit2","pc0624");没必要ControlSend再ControlSetText
Send("!n")
WinWaitActive($hd,"安装类型")
ControlClick($hd,"安装类型","Button4")
Send("!n")
WinWaitActive($hd,"可以安装该程序了")
ControlClick($hd,"可以安装该程序了","Button1")
Send("{enter}")
WinWaitActive($hd,"InstallShield Wizard 完成")
ControlClick($hd,"InstallShield Wizard 完成","Button2")
WinWaitActive($hd,"InstallShield Wizard 完成");如果Exit不行试试加这句
Send("{enter}")


[ 本帖最后由 lynfr8 于 2009-4-19 22:00 编辑 ]

zzfbz 发表于 2009-4-19 20:42:51

小新同学不错啊,基础好,学得挺快!

小新同学 发表于 2009-4-19 20:57:23

有时候我就觉得
if not WinActivate($hd,"InstallShield Wizard 完成") then WinActivate($hd,"InstallShield Wizard 完成")
这样一句是比较多余的,但是偶然没有加这句就停在了某个窗口,我以为是这个有问题咧·~谢谢大家·~~

6732732 发表于 2009-9-4 19:48:22

先顶,再下来学习
页: [1]
查看完整版本: 双击程序弹出属性窗口,键盘失效!