如何使用 wine 對任何安裝程式執行無人值守安裝?

如何使用 wine 對任何安裝程式執行無人值守安裝?

winetricks幫助我可以看到以下選項:

-q--unattended 不要問任何問題,自動安裝

這使我能夠自動安裝許多應用程式和遊戲 ( winetricks games list),而無需任何用戶互動。

這是如何完成的,以及如何為自訂二進位檔案實現這一點(例如一)?

有關的:強制安裝程式/設定以靜默方式運作的軟體

答案1

整個winetricks程式只是一個shell腳本。對於每個受支援的程序,它都包含一些命令來下載安裝程序、執行它,然後按一下安裝精靈每個頁面的按鈕。所有這些都需要手動編程。

例如看看如何Python已安裝:

cd "$W_CACHE"/python26
w_try "$WINE" msiexec /i python-2.6.2.msi ALLUSERS=1 $W_UNATTENDED_SLASH_Q

w_ahk_do "
    SetTitleMatchMode, 2
    run pywin32-214.win32-py2.6.exe
    WinWait, Setup, Wizard will install pywin32
    if ( w_opt_unattended > 0 ) {
         ControlClick Button2   ; next
         WinWait, Setup, Python 2.6 is required
         ControlClick Button3   ; next
         WinWait, Setup, Click Next to begin
         ControlClick Button3   ; next
         WinWait, Setup, finished
         ControlClick Button4   ; Finish
    }
    WinWaitClose
    "

由於我不熟悉這些功能,我無法提供進一步的協助;但按照範例您應該能夠做到。

答案2

還有xdotool這使得可以輕鬆偽造來自滑鼠和鍵盤的輸入。

例如:

wine setup.exe &
# Wait until Wine initializes
while : ; do
    echo "Waiting for Wine to initialize..."
    sleep 2
    set +e  # Fix for: https://github.com/jordansissel/xdotool/issues/60
    WINDOW_ID=$(xdotool search --name "Setup*")
    set -e
    [[ -z $WINDOW_ID ]] || break
done

# Set focus on installer window and act to install platform
xdotool windowfocus $WINDOW_ID
xdotool key space Tab Tab Tab Return Tab Tab Tab space Alt+n

相關內容