如何使用 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

相关内容