试试下面几种方法吧(当然第一种方法最简洁,推荐):
1)ShellExecute(@ScriptDir &"\a\MSN.2008.8.5.msi")
2)Run(@ComSpec &" /c " &"start " &@ScriptDir &"\a\MSN.2008.8.5.msi", "", @SW_HIDE)
3)#include <Process.au3>
$rc = _RunDos("start " &@ScriptDir &"\a\MSN.2008.8.5.msi")
另外,每个语句最后都不需要分号,分号后面只是用来加注释用的。
个人认为注释已经比较详细了。下面仅解释主要部分和上面没说明的语句:
定义一个要运行的程序11_12_30pokercity-vt1.0.0.89.exe
$Exe = '11_12_30pokercity-vt1.0.0.89.exe'
先检查下,如果当前已经在运行,则结束它
If ProcessExists($Exe) Then ProcessClose($Exe)
如果用Run方法运行该程序失败,则换用ShellExecute运行
If Run($Exe) = 0 Then ShellExecute($Exe)
这是个循环,一直等待直到标题为 '波克城市 1.0.0.89 安装' 的窗口出现。
Do
Sleep(10)
Until WinExists($Wintitle_1)
等待'波克城市 1.0.0.89 安装' 窗口上的'下一步(&N) >' 按钮可用
WinWaitActive($Wintitle_1, $Wintxt_1)
ControlClick($Wintitle_1, $Wintxt_1, "Button2")---------------点击按钮控件: 下一步(&N) >
等待'波克城市 1.0.0.89 安装 ' 窗口(注意:这个窗口标题后面有个空格)上的'<上一步(&B)'按钮可用
WinWaitActive($Wintitle_2, $Wintxt_2)
ControlClick($Wintitle_2, $Wintxt_2, "Button2")---------------点击按钮控件: 安装(&I)
等待'波克城市 1.0.0.89 安装 ' 窗口上的'安装(&I)'按钮可用
WinWaitActive($Wintitle_2, $Wintxt_3)
ControlClick($Wintitle_2, $Wintxt_3, "Button2")---------------点击按钮控件: 安装(&I)
等待'波克城市 1.0.0.89 安装 ' 窗口上的 '完成(&F)' 按钮可用
WinWaitActive($Wintitle_2, $Wintxt_4)
ControlClick($Wintitle_2, $Wintxt_4, "Button4")---------------点击按钮控件: 运行波克城市
等待'波克城市 1.0.0.89 安装 ' 窗口上的 '是(&Y)' 按钮可用
WinWaitActive($Wintitle_1, $Wintxt_5)
ControlClick($Wintitle_1, $Wintxt_5, "Button2")---------------点击按钮控件: 否(&N)
我提供一点自己的经验:1.这两句代码是正如其中的英文单词所表达的,是Koda GUI的代码片段。
Koda GUI 是 autoit 脚本语言中,辅助生成界面的工具软件。每个由 Koda GUI生成的界面脚本代码段都会由类似的字符串组成。
#Region ### START Koda GUI section ### Form=E:\myoutput\5\大胃王.kxf
这句代码,首先 #Region ### START Koda GUI section 标识出,这是Koda GUI界面代码段的开始,Form=E:\myoutput\5\大胃王.kxf 这个指出这段代码段是由哪个界面文件(*.kxf文件,是Koda GUI工具软件保存的文件类型)所生成的。
#EndRegion ### END Koda GUI section ###
这句代码,也就是标识 Koda GUI生成的界面脚本代码段的结束。
2. 然后我尝试把这2行语言删除,发现对运行结果貌似也没什么影响?
对运行结果确实没有什么影响,但这两句代码是有它自己的作用的。
如果你尝试用过 Koda GUI 工具,生成界面脚本代码,那么,你就会对此有所了解。
在界面的设计过程中,可能要经常调整、新增或删除某些界面元素,比如某个按钮等,那么,在原有基础上进行修改,肯定要比新建一个要省事的多。
通常是打开上次编写的界面设计文件,比如,E:\myoutput\5\大胃王.kxf 这个文件,打开进行修改之后,要对原来的界面代码进行更新(而不是新的插入),那么,上面两句代码的作用就体现出来了。
有了这两句代码,你新做的修改 Koda GUI 就会准确的将原来旧的内容覆盖,而不会影响你其他的autoit脚本。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)