找回密码
 加入
搜索
查看: 3592|回复: 6

[AU3基础] [已解决]ProcessWaitClose失效,做双循环卡在第2个循环,求解。

  [复制链接]
发表于 2015-12-23 19:25:16 | 显示全部楼层 |阅读模式
本帖最后由 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
发表于 2015-12-23 19:50:11 | 显示全部楼层
LZ這樣寫,好像有點看不懂。
发表于 2015-12-23 20:34:16 | 显示全部楼层
注意取值与判断的时机
Do
    Local $jc2=ProcessExists("msiexec.exe")
    Sleep(60)
Until $jc2=0
 楼主| 发表于 2015-12-24 00:02:27 | 显示全部楼层
本帖最后由 xing999999 于 2015-12-24 00:05 编辑

回复 3# Alam

事实上我之前来回测试的时候都这么写过
do
sleep(60)
until processexists("msiexec.exe")=0
发表于 2015-12-24 08:28:56 | 显示全部楼层
回复 1# xing999999


    我以前也问过或者发表过Office安装的问题,不过别人给我的答复是,Office不需要用脚本来安装,有配置文件就OK。
 在这里我也给你这个建议。你这里Office安装的是全部功能,其实对于大部分人来说,Office就用4个功能,Word,Excel,PPT,Access,可能有些人还用一下邮件,其他功能用的人相对来说较少。

 Offce2013\proplus.ww\config.xml
 这是配置自定义安装的配置文件路径,里面的设置很全的。看不懂可以百度一下。下面我贴一个链接,其他的自己找吧。
http://jingyan.baidu.com/article/425e69e6b264dcbe15fc16fe.html
 楼主| 发表于 2015-12-24 08:42:27 | 显示全部楼层
回复 5# xlj310


    谢谢高手。。。
发表于 2015-12-24 17:22:56 | 显示全部楼层
学习一下
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-4-20 21:55 , Processed in 0.082782 second(s), 23 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表