前些天,发布了一篇“AutoCAD 2007 全自动安装脚本+简体中文免激活版”,就是用AutoIT3编写的。

不过,AutoCAD2007这篇自动安装脚本,写的比较简单,只是使用了“Run”、“WinWaitActive”、“ControlClick”、“Send”这几个函数而已。当然了。有优点,也有缺点。

用此方法写的

优点:编写速度快,简单

缺点: 以后维护麻烦(比如更新软件版本).

下面介绍的这个“Kmplayer Plus 2010”将使用全新的编写方法.

#Region ;**** 参数创建于 ACNWrapper_GUI ****
#AutoIt3Wrapper_icon=KmplayerPlus.ico
#AutoIt3Wrapper_outfile=kmplayerPlus 2010 AutoIns.exe
#AutoIt3Wrapper_Compression=4
#AutoIt3Wrapper_UseAnsi=y
#AutoIt3Wrapper_Res_Description=Copyright Yusky.Me
#AutoIt3Wrapper_Res_Fileversion=2010
#AutoIt3Wrapper_Res_Fileversion_AutoIncrement=N
#AutoIt3Wrapper_Res_requestedExecutionLevel=requireAdministrator
#AutoIt3Wrapper_Res_LegalCopyright=Copyright (C) 2010 Yusky Group Co,.Ltd
#AutoIt3Wrapper_Res_Field=程序设计|Yusky
#AutoIt3Wrapper_Res_Field=作者网站|http://Yusky.me
#AutoIt3Wrapper_Res_Field=更新日期|2010-08-09
#AutoIt3Wrapper_Res_Field=适用版本|Kmplayer Plus 2010
#AutoIt3Wrapper_Res_Field=源文件名|Kmplayer Plus 2010.exe
#EndRegion ;**** 参数创建于 ACNWrapper_GUI ****

#cs ____________________________________

Au3 版本: V3.3.6.1
脚本作者: Yusky
Email: i@yusky.me
QQ/TM: 6783138
脚本版本: v11
脚本功能: SoftWareAutoInstall

#ce _______________脚本开始_________________

Opt("WinDetectHiddenText",1)
Opt("WinTitleMatchMode",4)
Opt("TrayAutoPause",0)

;最小化所有窗口
WinMinimizeAll()

$sMsgBox_Title = "自动安装    By:Yusky"
$sAppName = "“Kmplayer Plus 2010”"
$sInstallerName = "Kmplayer Plus 2010.exe"

;此段脚本判断安装文件是否存在,如果不存在提示消息框后退出
;~ $sCannotFindInstaller = "安装终止:无法找到安装程序"
;~ If Not FileExists($sInstallerName) Then
;~ 	$MsgBox_Text = $sCannotFindInstaller & @ScriptDir &""& $sInstallerName
;~ 	MsgBox(270352, $sMsgBox_Title , $MsgBox_Text, 5)
;~ 	Exit
;~ EndIf

;此段脚本显示确认继续安装消息框,消息框为是和否
$sSureContinue = "将自动安装软件,要继续吗?"
$sWarnning = "警告:安装前请先退出所有正在运行的 Windows 应用程序。"
$MsgBox_Text = $sAppName & $sSureContinue & @CRLF & @CRLF & $sWarnning
;选择“否”则退出,否则继续执行脚本
If (MsgBox(270372, $sMsgBox_Title, $MsgBox_Text, 2) = 4) Then
;退出
Exit
Else
;执行安装程序
Run($sInstallerName)
EndIf

;显示托盘区气球,“正在安装....”
$sSetupNow = "正在安装"
$sTrayTip_Text = $sSetupNow & $sAppName
$sTrayTipIcon = 1    ; 0=没有图标(默认) , 1=消息, 2=警告, 3=错误
TrayTip($sMsgBox_Title, $sTrayTip_Text, 10,$sTrayTipIcon)

;定义常量字符串
$TITLE = "Kmplayer Plus 2010"
$TITLE2 = "Kmplayer Plus 文件关联 "
$TITLE3 = "设置程序 - Kmplayer Plus 2010"

$Comment1 = "欢迎使用“Kmplayer Plus”安装向导"
$Comment2 = "许可证协议"
$Comment3 = "选择组件"
$Comment4 = "超级兔子"
$Comment5 = "选择安装位置"
$Comment6 = "正在安装"
$Comment7 = "选择文件格式"
$Comment8 = "正在完成“Kmplayer Plus”安装向导"
$Comment9 = ""

;欢迎
WinWait($TITLE, $Comment1)
If Not WinActive($TITLE, $Comment1) Then WinActivate($TITLE, $Comment1)
WinWaitActive($TITLE, $Comment1)
;点击“下一步(&N)>”按钮,快捷键Alt+N
Send("!N")

;“许可证协议”窗口
WinWait($TITLE, $Comment2)
If Not WinActive($TITLE, $Comment2) Then WinActivate($TITLE, $Comment2)
WinWaitActive($TITLE, $Comment2)
;点击“我接受(&I)>”按钮,快捷键为Alt+I
Send("!I")

;选择组件
WinWait($TITLE, $Comment3)
If Not WinActive($TITLE, $Comment3) Then WinActivate($TITLE, $Comment3)
WinWaitActive($TITLE, $Comment3)
;选择“完整安装”
ControlClick($TITLE, $Comment3 ,"ComboBox1")
Send("{DOWN}")
Send("{Enter}")
;点击“下一步(&N)>”按钮,快捷键Alt+N
Send("!N")

;取消安装“超级兔子”
WinWait($TITLE, $Comment4)
If Not WinActive($TITLE, $Comment4) Then WinActivate($TITLE, $Comment4)
WinWaitActive($TITLE, $Comment4)
;取消选项1/1 "安装 超级兔子2010"
If ControlCommand($TITLE, $Comment4, "Button4", "IsChecked", "") Then
ControlCommand($TITLE, $Comment4, "Button4", "UnCheck", "")
EndIf
;点击“下一步(&N)>”按钮,快捷键Alt+N
Send("!N")

;选择“安装位置”
WinWait($TITLE, $Comment5)
If Not WinActive($TITLE, $Comment5) Then WinActivate($TITLE, $Comment5)
WinWaitActive($TITLE, $Comment5)
;修改安装路径为D盘
WinWaitActive($TITLE, $Comment5, "Edit1")
Send("{Home}{Delete}D")
;点击“下一步(&I)>”按钮,快捷键Alt+N
Send("!I")

;正在安装
WinWait($TITLE, $Comment6)
If Not WinActive($TITLE, $Comment6) Then WinActivate($TITLE, $Comment6)
WinWaitActive($TITLE, $Comment6)
;点击“显示详情”按钮,
ControlClick($TITLE, $Comment6, "Button4")
;灰化“取消”按钮
ControlDisable($TITLE, $Comment6, "Button3")

;Kmplayer Plus 文件关联
WinWait($TITLE2, $Comment7)
If Not WinActive($TITLE2, $Comment7) Then WinActivate($TITLE2, $Comment7)
WinWaitActive($TITLE2, $Comment7)
;关联“Kmplayer Plus” 到“所有视频格式”
ControlClick($TITLE2, $Comment7, "ComBoBox1")
Send("{DOWN}")
Send("{Enter}")
;点击“确定(&O)>”,快捷键为“Alt+O”,完成选择
Send("!O")

;安装完成
WinWait($TITLE, $Comment8)
If Not WinActive($TITLE, $Comment8) Then WinActivate($TITLE, $Comment8)
WinWaitActive($TITLE, $Comment8)
;取消“1/1”运行 Kmplayer Plus 设置程序
;ControlClick($TITLE, $Comment8, "Button4")
;点击“完成”按钮,快捷键为Alt+F
Send("!F")

;设置“解码方案”
WinWait($TITLE3, $Comment9)
If Not WinActive($TITLE3, $Comment9) Then WinActivate($TITLE3, $Comment9)
WinWaitActive($TITLE3, $Comment9)
;设置“解码模式”为“默认设置”
ControlClick($TITLE3, $Comment9, "TTntComboBox.UnicodeClass11")
Send("{DOWN}")
Send("{Enter}")
;点击“确定”。完成设置.无快捷键
ControlClick($TITLE3, $Comment9, "TTntButton.UnicodeClass4")

;安装完成.退出程序
Exit

此次增加了安装前“最小化所有窗口”,两个消息框以及显示托盘去气球,正在安装。
使用的是先定义常量字符串,然后编写的时候调用“常量字符串”。

下面给出源码下载地址,以及一个编译好的自动安装程序。

Autoit3源码:点击进入下载

已编译好的:点击进入下载

Kmplayer Plus 2010点击进入下载

注意:此自动安装需配合Kmplayer Plus 2010.

使用方法:将Kmplayer Plus 2010与已经编译好的自动安装程序,放在同一个目录。

Enjoy

By: Yusky

原创作品。欢迎翻版,翻版不究

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。