本帖最后由 xing999999 于 2015-12-24 08:48 编辑
以下是我写的office2013原版的AU3安装代码,一直卡在sleep(60)这里,不知道为什么。同时ProcessWait和ProcessWaitClose都使用过,无效。。。所以才做了这么2个循环(最后的2个循环)。结果一直卡在第2个循环(最后的2个循环中的第2个)。卡在sleep(60)这里,即时已经出现了结束窗口,即时msiexec.exe这个进程已经不存在了,依然卡在这里。请各位高手直接看代码最后部分即可。。。Opt('TrayIconDebug', 1)
Run("Office2013\setup.exe")
$tip = "为了保证自动安装的顺利完成,请不要乱动的键盘和鼠标。"
$tip &= @CRLF
$tip &= "Office2013完整版将安装在D盘,默认所有组件全安装,请保证D盘空间足够,约需要1.5G的空间。"
ToolTip($tip, @DesktopWidth / 2.5 - 15, @DesktopHeight - 40 - 60, "温馨提示:", 2)
Local $office ="Microsoft Office Professional Plus 2013"
Local $hwin=WinWait($office)
If Not WinActivate($hwin) Then WinActivate($hwin)
WinWaitActive($hwin)
Send ("!{u}")
Local $timeout = 5 ;5s
Local $isFound = False
Local $begin = TimerInit()
Do
If ControlGetText($hwin, "", "RichEdit20W5") == "Windows 用户" Then
$isFound = True
ExitLoop
EndIf
Sleep(100)
Until TimerDiff($begin) >= $timeout * 100
If Not $isFound Then
MsgBox(0,"出错了","自动安装出错,请选择手动安装")
EndIf
Send ("!{F}")
Sleep(2000)
$oldPath = ControlGetText($hwin, $office, "RichEdit20W8")
$newPath = "d" & StringRight($oldPath, StringLen($oldPath) - 1)
ControlSetText($hwin, $office, "RichEdit20W8", $newPath)
Send("!{I}");发送开始正式安装
local $jc="msiexec.exe"
While ProcessExists($jc)=0;因为安装的时候会依次出现2个msiexec.exe进程,所以第一个循环等待msiexec.exe进程出现。
Sleep(50)
WEnd
Local $jc2=ProcessExists("msiexec.exe")
Do;第2个循环,等msiexec.exe进程不存在,则表示安装完毕。但一直卡在这里
Sleep(60)
Until $jc2=0
If Not WinActivate($hwin) Then WinActivate($hwin)
WinWaitActive($hwin)
Send("!{C}")
Exit
|