就为了这个, 我刚才下载了一个 Wmp11 版, 下面的代码已经测试成功, 只是有些凌乱, 自己整理一下就可以了:
$WinTitle = 'Windows Media Player 11' ;设置目标窗口标题为变量 $WinTitle 并为其赋值为 'Windows Media Player 11'
$WmpDir = @ProgramFilesDir&'\Windows Media Player' ;定义播放器目标路径
TraySetIcon($WmpDir&'\WmPlayer.eXe',0) ;指定任务栏托盘图标...
TrayTip('正在后台安装 Windows Media Player 11'& _
'','安装期间无须人工干预, 因此您将看不到界面, 请稍候... ',5,4)
Run(@ComSpec & ' /C ' & 'Wmp11 /Q','',@Sw_Hide) ;把准备好了的 Wmp11 安装包改名为 Wmp11.eXe (或 Wmp11.eX_ 抑或其他您希望的扩展名——就是 Jpg 也同样可以!)
WinWaitClose($WinTitle,'正在解开') ;等待窗口关闭后再继续执行脚本...
$i = 0 ;时间变量...
While $i < 60 ;若已关闭系统还原功能, 则会弹出 'Windows Media Player 11','系统还原功能...' 窗口, 自动转到 ClickButton()
$i = $i + 1 ;同样是时间变量, 即 变量 $i = 0+1 第二个 变量 $i 为上边声明的变量值...
If WinExists($WinTitle,'系统还原功能') Then ClickButton() ;如果出现含预定变量的窗口, 则跳转到自定义函数 ClickButton()
Sleep(100)
WEnd
;处理意外弹出窗口, 如果此窗口出现则直接点击 "确定" ('Button1')按钮继续安装...
Func ClickButton()
ControlClick ($WinTitle,'','Button1')
EndFunc ;===> 自定义函数
ProcessWaitClose('Setup_Wm.eXe',100) ;等待 Setup_Wm.eXe 进程关闭, 判断是否已经安装结束...
;延时3秒消息提示用户安装成功...(可以取消, 方法: 在其最前加半角分号";"即可使其成为注释;或直接删除了事!)
MsgBox(64+262144,'OK, 系统集成播放器已顺利安装成功!','系统'& _
'集成播放器 Windows Media Player 11 已顺利安装成功!',3)
;安装完毕, 带参数 '/Prefetch:1' + 最大化窗口 '@Sw_ShowMaxiMized' 运行 Wmp11 播放器...
ShellExecute('WmPlayer.eXe','/Prefetch:1',$WmpDir,'',@Sw_ShowMaxiMized)
;代码有些乱七八糟, 但经测试可行, 有兴趣就自己整理一下喽~~~ ^_^
[ 本帖最后由 ahkang 于 2009-3-23 15:38 编辑 ] |