Autoit在线文档:AutoIt 在线文档
SQL Server的自动化安装仅供参考,SQL Server安装环境较复杂,自动化安装总是出错
#RequireAdmin
#comments-start
version:1.0
author:XNN
date:2022/12/24
describe:软件自动执行脚本 RunALL.au3
#comments-end
;共7款软件的自动安装
Func RunAll()
_Install_SQL()
Sleep(6000)
_Install_SSMS()
Sleep(6000)
_Install_7z()
Sleep(1000)
_Install_Everything()
Sleep(1000)
_install_Npp()
Sleep(1000)
_install_Lockhunter()
Sleep(1000)
_Install_Stxihei()
EndFunc
Func _Install_SQL()
;有时会卡在Install Rules
Opt("MouseCoordMode", 0); 设置激活窗口的相对坐标位置
Opt("MouseClickDelay", 3000); 设置鼠标点击次数的间隔时长为3s
Opt("WinDetectHiddenText", 1); 指定是否让隐藏的窗口文本也能被窗口匹配函数检测.
Local $hTimer=TimerInit();设置程序运行初始时间
Run("D:/AmberSoftInstallers/software/SQLEXPR_x64_ENU.exe")
Local $path="D:\AmberSoftInstallers\software\SQLEXPR_x64_ENU\"
WinWait("Choose Directory For Extracted Files")
ControlSend("Choose Directory For Extracted Files","","Edit1",$path)
ControlClick("Choose Directory For Extracted Files","Ok","Button1","left")
WinWaitActive("SQL Server Installation Center")
WinSetState("SQL Server Installation Center","",@SW_MAXIMIZE)
Sleep(1200)
MouseClick("left",556,48,2) ;暂时解决,position的问题
ProcessClose("LANDINGPAGE.EXE") ;关闭安装起始页
Local $title="SQL Server 2019 Setup"
WinWaitActive($title,"License Terms")
ControlClick($title,"I &accept the license terms and","WindowsForms10.BUTTON.app.0.aec740_r6_ad14","left")
WinActive($title,"License Terms")
ControlClick($title,"&Next >","WindowsForms10.BUTTON.app.0.aec740_r6_ad12","left")
WinWaitActive($title,"Microsoft Update")
ControlClick($title,"&Next >","WindowsForms10.BUTTON.app.0.aec740_r6_ad12","left")
WinWaitActive($title,"Product Updates")
ControlClick($title,"&Next >","WindowsForms10.BUTTON.app.0.aec740_r6_ad12","left")
WinWait($title,"Install Setup Files")
Local $ir=WinWaitActive($title,"Install Rules")
WinActivate($ir)
Sleep(5000)
ControlClick($ir,"&Next >","WindowsForms10.BUTTON.app.0.aec740_r6_ad12","left")
WinWaitActive($title,"Feature Selection")
ControlClick($title,"&Next >","WindowsForms10.BUTTON.app.0.aec740_r6_ad12","left")
Local $name="SQLEXPRESS"
Dim $d=WinWaitActive($title,"Instance Configuration")
MouseClick("left",630, 170,2)
ControlSetText($d,"Instance &ID:","WindowsForms10.EDIT.app.0.aec740_r6_ad11",$name)
ControlClick($title,"&Next >","WindowsForms10.BUTTON.app.0.aec740_r6_ad12","left")
WinWaitActive($title,"Server Configuration")
ControlClick($title,"&Next >","WindowsForms10.BUTTON.app.0.aec740_r6_ad12","left")
Local $password="123456"
WinWaitActive($title,"Database Engine Configuration")
ControlClick($title,"&Mixed Mode (SQL Server authentication and Windows authentication)","WindowsForms10.BUTTON.app.0.aec740_r6_ad18","left")
Dim $dp=WinActive($title,"Database Engine Configuration")
ControlSetText($dp,"&Enter password:","WindowsForms10.EDIT.app.0.aec740_r6_ad12",$password)
Sleep(3000)
ControlSetText($dp,"C&onfirm password:","WindowsForms10.EDIT.app.0.aec740_r6_ad11",$password)
Sleep(5000)
ControlClick($dp,"Add &Current User","WindowsForms10.BUTTON.app.0.aec740_r6_ad14","left")
ControlClick($dp,"&Next >","WindowsForms10.BUTTON.app.0.aec740_r6_ad12","left")
WinWaitNotActive($title,"Feature Configuration Rules")
WinWait($title,"Installation Progress")
Dim $com=WinWait($title,"Complete")
While 1
If ProcessExists("SCENARIOENGINE.EXE") Then
WinActivate($com,"Complete")
Sleep(5000)
ControlClick($title,"Close","WindowsForms10.BUTTON.app.0.aec740_r6_ad11","left")
Else
ExitLoop
EndIf
WEnd
Sleep(2000)
EndFunc
Func _Install_SSMS()
Run("D:/AmberSoftInstallers/software/SSMS-Setup-CHS.exe")
WinWait("Microsoft SQL Server Management Studio(内含Azure Data Studio)")
WinActivate("Microsoft SQL Server Management Studio(内含Azure Data Studio)")
Send("{LShift}")
Send("{I}")
While 1
if ProcessExists("SSMS-Setup-CHS.exe") Then
WinActivate("Microsoft SQL Server Management Studio(内含Azure Data Studio)")
Sleep(6000)
Send("{LShift}")
Send("{C}")
Else
ExitLoop
EndIf
WEnd
ProcessClose("SSMS-Setup-CHS.exe")
MsgBox(4096,"信息提示无需进行操作","安装SQL Server的第二步成功,已成功安装数据库!",2)
EndFunc
Func _Install_7z()
RunWait(@ScriptDir & "\7z1900-x64.exe /S")
MsgBox(4096,"信息提示无需进行操作","7z1900-x64安装成功!",2)
EndFunc
;安装Everything-1.4.1.935.x64.msi,总是卡在 I &Agree
Func _Install_Everything()
Local $hTimer=TimerInit();设置程序运行初始时间
RunWait(@COMSPEC & " /c Start D:/AmberSoftInstallers/software/Everything-1.4.1.935.x64.msi")
Local $title="Everything 1.4.1.935 (x64)"
WinWait($title,"License Agreement")
ControlClick($title,"I &Agree","Button3","left")
Sleep(500)
WinActive($title,"License Agreement")
ControlClick($title,"&Next >","Button6","left")
WinWaitActive($title,"Select Installation Folder")
ControlClick($title,"&Next >","Button1","left")
WinWaitActive($title,"Confirm Installation")
ControlClick($title,"&Next >","Button1","left")
Sleep(Ceiling(TimerDiff($hTimer)) * 2); 在运行完安装程序,打开第2个程序之间所消耗的时间x2倍,来等待主程序的出现
Local $handleID = WinWaitActive($title,"Installation Complete"); 激活主程序用以获取句柄信息
ProcessClose(WinGetProcess($handleID)); 杀死进程以达到关闭窗口的目的
MsgBox(4096,"信息提示无需进行操作","Everything-1.4.1.935.x64.msi已成功安装!",2);2秒后自动关闭提示窗口
FileDelete("C:/Users/OEM/Desktop/搜索 Everything.lnk") ;删除快捷键,将图标拖入运行框即可知道快捷键的绝对路径
EndFunc
Func _Install_Npp()
Run("D:/AmberSoftInstallers/software/npp.7.6.6.Installer.exe")
WinWaitActive("Installer Language")
Send("{enter}")
Local $title="Notepad++ v7.6.6 安装"
WinWaitActive($title,"欢迎使用 Notepad++ v7.6.6 安装向导")
Send("!n")
WinWaitActive($title,"许可证协议")
Send("!i")
WinWaitActive($title,"选定安装位置")
Send("!n")
WinWaitActive($title,"选择组件")
Send("!n")
WinActive($title,"选择组件")
ControlClick($title,"Create Shortcut on Desktop","Button4","left")
ControlClick($title,"安装(&I)","Button2","left")
Sleep(100)
WinWaitActive($title,"正在完成 Notepad++ v7.6.6 安装向导")
ControlClick($title,"运行 Notepad++ v7.6.6(&R)","Button4","left")
Send("{enter}")
MsgBox(4096,"信息提示无需进行操作","npp.7.6.6.Installer.exe已成功安装!",2)
ProcessClose("npp.7.6.6.Installer.exe")
EndFunc
;安装lockhuntersetup_3-4-3.exe
Func _Install_Lockhunter()
Run("D:/AmberSoftInstallers/software/lockhuntersetup_3-4-3.exe")
Local $title="Setup - LockHunter 3.4, 32/64 bit"
WinWait($title,"Select Destination Location")
ControlClick($title,"&Next >","TNewButton2","left")
WinWaitActive($title,"Completing the LockHunter Setup Wizard")
Send("{enter}")
MsgBox(4096,"信息提示无需进行操作","lockhuntersetup_3-4-3.exe已成功安装!",2)
ProcessClose("iexplore.exe")
EndFunc
;安装STXIHEI.TTF
Func _Install_Stxihei()
RunWait(@COMSPEC & " /c Start D:/AmberSoftInstallers/software/STXIHEI.TTF")
Local $title="华文细黑 (TrueType) "
WinWait($title)
ControlClick($title,"安装(&I)","Button2","left")
sleep(1000)
MsgBox(4096,"信息提示无需进行操作","华文细黑字体已成功安装!",2)
ProcessClose("fontview.exe")
EndFunc
RunAll()