猎手 发表于 2008-6-19 11:48:36

Office 2007 SP1自动安装

Office 2007可以采用无人值守安装,方法是setup /admin生成setup.msp文件。
在设置setup.msp文件中有三种方式:完全提示、基本提示、无提示。
无提示也就是静默安装,屏幕没有任何显示,但是如果用户这时候安装其他软件,就会导致Office安装退出。本人采用基本提示,这时的安装有界面,会自动安装,但最后一步会弹出一个要求关闭的对话框。由于要在随后安装saveaspdf和office补丁,所以本人采用au3来完成。
au3代码如下:
run("SETUP.EXE /adminfile setup.msp")
WinWaitActive("Microsoft Office Professional Plus 2007")
Send("!C")
WinWaitClose("Microsoft Office Professional Plus 2007")
run("SaveAsPDFandXPS.exe")
WinWaitActive("用于 2007 Microsoft Office 程序的 Microsoft 另存为 PDF/XPS 加载项")
send("!A")
send("!C")
WinWaitActive("用于 2007 Microsoft Office 程序的 Microsoft 另存为 PDF/XPS 加载项","安装已完成")
WinClose("用于 2007 Microsoft Office 程序的 Microsoft 另存为 PDF/XPS 加载项","安装已完成")
WinWaitClose("用于 2007 Microsoft Office 程序的 Microsoft 另存为 PDF/XPS 加载项")
run("excel2007-kb946974-fullfile-x86-glb.exe")
WinWaitActive("Excel 2007 安全更新 (KB946974)")
send("!A")
send("!C")
WinWaitActive("Excel 2007 安全更新 (KB946974)","安装已完成")
WinClose("Excel 2007 安全更新 (KB946974)","安装已完成")
WinWaitClose("Excel 2007 安全更新 (KB946974)")
run("office2007-kb947801-fullfile-x86-glb.exe")
WinWaitActive("Office 2007 安全更新 (KB947801)")
send("!A")
send("!C")
WinWaitActive("Office 2007 安全更新 (KB947801)","此系统已安装了更新")
WinClose("Office 2007 安全更新 (KB947801)","此系统已安装了更新")
WinWaitClose("Office 2007 安全更新 (KB947801)")
run("outlook2007-kb946983-fullfile-x86-glb.exe")
WinWaitActive("Outlook 2007 安全更新 (KB946983)")
send("!A")
send("!C")
WinWaitActive("Outlook 2007 安全更新 (KB946983)","此系统已安装了更新")
WinClose("Outlook 2007 安全更新 (KB946983)","此系统已安装了更新")

[ 本帖最后由 猎手 于 2008-6-21 12:16 编辑 ]

猎手 发表于 2008-6-19 11:57:10

续上

问题出现在以上的蓝色代码部分,office安装完毕后仍然无法自动关闭。

图1

图2

图3

图4

猎手 发表于 2008-6-19 12:06:22

从图1、图2、图3、图4来看,安装进程窗口和安装完毕窗口,用“AU3 窗口信息工具”来查看,没有任何差别。而安装完毕窗口内的所有文字信息用“AU3 窗口信息工具”也根本无法捕捉。所以
WinWaitActive("Microsoft Office Professional Plus 2007")
Send("!C")
WinWaitClose("Microsoft Office Professional Plus 2007")
代码执行失败也就不难理解。
那么,用AU3如何区分安装进程窗口和安装完毕窗口呢?还请高人指点。

猎手 发表于 2008-6-19 12:12:33

后来,本人对代码做了以下修改:
run("SETUP.EXE /adminfile setup.msp")
WinWaitActive("Microsoft Office Professional Plus 2007")
Sleep(120000)
do
Send("!C")
sleep(10000)
Until WinClose("Microsoft Office Professional Plus 2007")
WinWaitClose("Microsoft Office Professional Plus 2007")
安装过程中出现了

如何解决?急!急!急!

猎手 发表于 2008-6-19 19:24:56

难道没有高手吗?

猎手 发表于 2008-6-21 12:14:42

经本人两天的研究,问题终于得以解决

boyhong 发表于 2008-6-22 02:41:34

解决了不共享出来不共享~~~~~~~~~~~~~

猎手 发表于 2008-6-22 17:50:16

代码如下:
run("SETUP.EXE /adminfile setup.msp")
Sleep(300000)
While 1
WinActivate("Microsoft Office Professional Plus 2007")
Send("!c")
$Exit= WinExists("Microsoft Office Professional Plus 2007")
If $Exit=0 Then ExitLoop
sleep(2000)
WEnd
run("SaveAsPDFandXPS.exe")
WinWaitActive("用于 2007 Microsoft Office 程序的 Microsoft 另存为 PDF/XPS 加载项")
send("!A")
send("!C")
WinWaitActive("用于 2007 Microsoft Office 程序的 Microsoft 另存为 PDF/XPS 加载项","安装已完成")
Send("{enter}")
WinWaitClose("用于 2007 Microsoft Office 程序的 Microsoft 另存为 PDF/XPS 加载项")
run("excel2007-kb946974-fullfile-x86-glb.exe")
WinWaitActive("Excel 2007 安全更新 (KB946974)")
send("!A")
send("!C")
WinWaitActive("Excel 2007 安全更新 (KB946974)","安装已完成")
Send("{enter}")
WinWaitClose("Excel 2007 安全更新 (KB946974)")
run("office2007-kb947801-fullfile-x86-glb.exe")
WinWaitActive("Office 2007 安全更新 (KB947801)")
send("!A")
send("!C")
WinWaitActive("Office 2007 安全更新 (KB947801)","安装已完成")
Send("{enter}")
WinWaitClose("Office 2007 安全更新 (KB947801)")
run("outlook2007-kb946983-fullfile-x86-glb.exe")
WinWaitActive("Outlook 2007 安全更新 (KB946983)")
send("!A")
send("!C")
WinWaitActive("Outlook 2007 安全更新 (KB946983)","安装已完成")
Send("{enter}")

猎手 发表于 2008-6-22 17:51:59

也可以这样:
run("SETUP.EXE /adminfile setup.msp")
WinWaitActive("Microsoft Office Professional Plus 2007")
Sleep(300000)
WinWaitClose("Microsoft Office Professional Plus 2007")
run("SaveAsPDFandXPS.exe")
WinWaitActive("用于 2007 Microsoft Office 程序的 Microsoft 另存为 PDF/XPS 加载项")
send("!A")
send("!C")
WinWaitActive("用于 2007 Microsoft Office 程序的 Microsoft 另存为 PDF/XPS 加载项","安装已完成")
Send("{enter}")
WinWaitClose("用于 2007 Microsoft Office 程序的 Microsoft 另存为 PDF/XPS 加载项")
run("excel2007-kb946974-fullfile-x86-glb.exe")
WinWaitActive("Excel 2007 安全更新 (KB946974)")
send("!A")
send("!C")
WinWaitActive("Excel 2007 安全更新 (KB946974)","安装已完成")
Send("{enter}")
WinWaitClose("Excel 2007 安全更新 (KB946974)")
run("office2007-kb947801-fullfile-x86-glb.exe")
WinWaitActive("Office 2007 安全更新 (KB947801)")
send("!A")
send("!C")
WinWaitActive("Office 2007 安全更新 (KB947801)","安装已完成")
Send("{enter}")
WinWaitClose("Office 2007 安全更新 (KB947801)")
run("outlook2007-kb946983-fullfile-x86-glb.exe")
WinWaitActive("Outlook 2007 安全更新 (KB946983)")
send("!A")
send("!C")
WinWaitActive("Outlook 2007 安全更新 (KB946983)","安装已完成")
Send("{enter}")

LUCHANGLIANG 发表于 2008-9-29 15:34:05

太好了,我也正在为OFFICE的问题发愁.

jasonny 发表于 2013-12-30 14:41:11

剛好需要,感謝大大分享

henuyangyang 发表于 2016-10-19 07:29:51

楼主,4楼出现的问题,不知道您是怎样解决的呢?我也遇到了这个问题,不知道能不能有幸得到您的指点?

henuyangyang 发表于 2016-10-21 00:12:39

参考你的代码 我也想到了答案,不知道咱俩想的是不是一样呢?
页: [1]
查看完整版本: Office 2007 SP1自动安装