本帖最后由 fybhwsx 于 2024-1-25 11:53 编辑 #include <WinAPISysWin.au3>
;软件下载地址:https://freefilesync.org/
Local $FreeFileSync_lnk = 'C:\Users\Public\Desktop\FreeFileSync.lnk' ;公共桌面快捷方式
FileGetShortcut($FreeFileSync_lnk)
If @error Then
ShellExecute('Z:\FreeFileSync_13.3_Setup.exe') ;运行安装程序
Local $azckjb, $aData, $i, $zckwb
;点击《我同意此协议》
$azckjb = WinWaitActive('[CLASS:TWizardForm]', '许可协议')
$aData = _WinAPI_EnumChildWindows($azckjb) ;枚举指定父窗的子窗口(可见)
For $i = 1 To $aData[0][0]
$zckwb = ControlGetText($azckjb, '', $aData[$i][0])
If StringInStr($zckwb, '我同意此协议') Then
If ControlClick($azckjb, '', $aData[$i][0]) Then ExitLoop
EndIf
Next
;点击《下一步》
For $i = 1 To $aData[0][0]
$zckwb = ControlGetText($azckjb, '', $aData[$i][0])
If StringInStr($zckwb, '下一步') Then
If ControlClick($azckjb, '', $aData[$i][0]) Then ExitLoop
EndIf
Next
WinWaitActive('[CLASS:TWizardForm]', '选择目标位置')
;点击《下一步》
For $i = 1 To $aData[0][0]
$zckwb = ControlGetText($azckjb, '', $aData[$i][0])
If StringInStr($zckwb, '下一步') Then
If ControlClick($azckjb, '', $aData[$i][0]) Then ExitLoop
EndIf
Next
WinWaitActive('[CLASS:TWizardForm]', '选择组件')
;点击《下一步》
For $i = 1 To $aData[0][0]
$zckwb = ControlGetText($azckjb, '', $aData[$i][0])
If StringInStr($zckwb, '下一步') Then
If ControlClick($azckjb, '', $aData[$i][0]) Then ExitLoop
EndIf
Next
WinWaitActive('[CLASS:TWizardForm]', '不是广告')
;点击《下一步》
For $i = 1 To $aData[0][0]
$zckwb = ControlGetText($azckjb, '', $aData[$i][0])
If StringInStr($zckwb, '下一步') Then
If ControlClick($azckjb, '', $aData[$i][0]) Then ExitLoop
EndIf
Next
;点击《完成》
WinWaitActive('[CLASS:TWizardForm]', '安装完成')
Local $ds
For $i = 15 To 1 Step -1
Local $zckwb = ControlGetText('[CLASS:TWizardForm]', '安装完成', 'TNewButton' & $i)
;此处用StringInStr或StringRegExp比较不出控件文本?!(首次安装还能比较出来,卸载再安装就无效?)后来观察这个《完成》的按钮就是倒数第二个控件,只能无确认的瞎点了。。
If $zckwb Then $ds += 1
If $ds = 2 Then
ControlFocus('[CLASS:TWizardForm]', '安装完成', 'TNewButton' & $i)
ControlClick('[CLASS:TWizardForm]', '安装完成', 'TNewButton' & $i)
ExitLoop
EndIf
Next
EndIf
这个软件的控件接口不固定,诡异的是最后一步点击《完成》按钮时,比较不出控件文本。谁有空闲时间帮忙测试一下上面的安装代码,看能不能在你们的电脑上安装。有没有更简单有效(卸载几次试试脚本都能安装回来)的方法能分享一下!
|