autoit安裝adobe reader dc問題?
最近在學autoit,安裝adobe reader dc離線版,可以將檔案執行,然後無法執行安裝,請問哪裡出錯了?ShellExecute("e:\AcroRdrDC1900820071_zh_TW.exe")
WinWaitActive("Adobe Acrobat Reader DC (Continuous) - 設定","準備安裝 Adobe Acrobat Reader DC")
Send("!i")
WinWaitActive("Adobe Acrobat Reader DC (Continuous) - 設定","安裝程式已完成")
Send("!f")
我有測試你的代碼
是可以正確執行安裝的...
使用這方法可能要注意以下幾點
1.該安裝程式需要為活動(激活)狀態,以及位於最上層
2.安裝途中不可以去點擊其他地方,以免Send失靈...
(Send命令限於活動的視窗)
3.可以在腳本頭尾分別加上 BlockInput(1)、BlockInput(0),
用以鎖定滑鼠和鍵盤,降低失敗機率
BlockInput(1)
ShellExecute("e:\AcroRdrDC1900820071_zh_TW.exe")
WinWaitActive("Adobe Acrobat Reader DC (Continuous) - 設定","準備安裝 Adobe Acrobat Reader DC")
Send("!i")
WinWaitActive("Adobe Acrobat Reader DC (Continuous) - 設定","安裝程式已完成")
Send("!f")
BlockInput(0)
本帖最後由 gary8349 於 2020-3-18 17:36 編輯
以下為我的方法,僅供參考
推薦方法二
方法一:#AutoIt3Wrapper_Au3Check_Parameters=-d -w 1 -w 2 -w 3 -w- 4 -w 5 -w 6 -w 7
#AutoIt3Wrapper_UseX64=n
#NoTrayIcon
#RequireAdmin
;;載入用以使用 防止重複執行(_Singleton) 語句
#include <Misc.au3>
FileChangeDir(@ScriptDir) ;;切換起始目錄工作目錄到腳本所在路徑
_Singleton(@ScriptName) ;;防止重複執行
;;=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
;;安裝程式的路徑
Global $sFile = @ScriptDir & '\AcroRdrDC1900820071_zh_TW.exe'
;;第一個視窗的標題與類型
Global $Windows1 = ''
;;第二個視窗的標題與類型
Global $Windows2 = ''
BlockInput(1)
;;執行安裝程式
ShellExecute($sFile)
;;等待第一個視窗(解壓縮-AcroRdrDC1900820071_zh_TW.exe)
WinWait($Windows1, '正在解壓縮安裝檔案...')
;;等待第二個視窗(解壓縮完的執行程式-setup.exe)
WinWaitActive($Windows2, '準備安裝 Adobe Acrobat Reader DC')
Send("!i")
WinWaitActive($Windows2, '安裝程式已完成')
Send("!f")
BlockInput(0)
MsgBox(64, '完成', '安裝已完成!', 5)
Exit
方法二:
#cs ____________________________________
Au3版本:3.3.14.5
SciTE版本:3.6.6
腳本作者:SHIWASU KAKERU / MicroDuo
腳本功能:自動安裝 Adobe Reader DC 示例
外部函數:PostMessage_UDF.au3(後臺執行)
#ce _______________腳本開始_________________
;;腳本檢查
#AutoIt3Wrapper_Au3Check_Parameters=-d -w 1 -w 2 -w 3 -w- 4 -w 5 -w 6 -w 7
;;exe不編譯為x64
#AutoIt3Wrapper_UseX64=n
;;不顯示右下角系統匣圖標
#NoTrayIcon
;;請求管理員權限
#RequireAdmin
;;防止重複執行(_Singleton) 函數
#include <Misc.au3>
;;_MouseClick 函數
#include <PostMessage_UDF.au3>
;;切換起始目錄工作目錄到腳本所在路徑
FileChangeDir(@ScriptDir)
;;防止重複執行
_Singleton(@ScriptName)
;;=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
;;安裝程式的路徑
Global $sFile = @ScriptDir & '\AcroRdrDC1900820071_zh_TW.exe'
;;第一個視窗的標題與類型
Global $Windows1 = ''
;;第二個視窗的標題與類型
Global $Windows2 = ''
;;安裝按鈕
Global $btnInstallHandle = ""
;;完成按鈕
Global $btnFinalHandle = ""
;;宣告變數
Global $btnInstall, $btnFinal
;;執行安裝程式
ShellExecute($sFile)
;;等待第一個視窗(解壓縮-AcroRdrDC1900820071_zh_TW.exe)
WinWait($Windows1, '正在解壓縮安裝檔案...')
;;等待第二個視窗(解壓縮完的執行程式-setup.exe)
WinWait($Windows2, '準備安裝 Adobe Acrobat Reader DC')
;;按下 "安裝" 按鈕
$btnInstall = ControlGetHandle($Windows2,"",$btnInstallHandle) ;;取得 "安裝" 按鈕控件控制碼
_MouseClick(String($btnInstall), 'left', 50, 10) ;;滑鼠左鍵點擊 "安裝" 按鈕。 300, 324 => "安裝" 按鈕的相對(於安裝程式)座標
;;等待安裝完成
WinWait($Windows2, '安裝程式已完成')
;;按下 "完成" 按鈕
$btnFinal = ControlGetHandle($Windows2,"",$btnFinalHandle) ;;取得 "完成" 按鈕控件控制碼
_MouseClick(String($btnFinal), 'left', 50, 10) ;;滑鼠左鍵點擊 "完成" 按鈕。 50, 10 => "完成" 按鈕的相對(於安裝程式)座標
;;等待視窗關閉
WinWaitClose($Windows2, '安裝程式已完成')
;;完成提示
MsgBox(64, '完成', '安裝已完成!', 5)
;;結束
Exit
稍微題外話
如果要研究,不想每次都執行完等他解壓縮
可以用以下方法:
1.執行 AcroRdrDC1900820071_zh_TW.exe,等待解壓縮完成,不要進行下個動作
2.開啟Temp資料夾,可以用 ShellExecute(@TempDir)
3.找到數字資料夾,如:27948,大小約164MB
4.資料夾裡面有 config.bin、installer.bin,用7-Zip解壓縮installer.bin至 \installer 資料夾,得到以下檔案
5.直接對setup.exe進行操作即可
感謝以上大大回復,我會測試看看{:9_275:}
頁:
[1]