web-dev-qa-db-ja.com

Wineを使用してインストーラーの無人インストールを実行するにはどうすればよいですか?

winetricks help で次のオプションが表示されます。

-q--unattended質問はせず、自動的にインストールするだけです

これにより、多くのアプリやゲームを自動的にインストールできます(winetricks games list)ユーザーの操作なし。

これはどのように行われ、カスタムバイナリ( this oneなど)でどのように実現されますか?

関連: インストーラー/セットアップを強制的にサイレント実行するソフトウェア

1
kenorb

winetricksプログラム全体は単なるシェルスクリプトです。サポートされているプログラムごとに、インストーラーをダウンロードして実行し、インストールウィザードの各ページのボタンをクリックするためのいくつかのコマンドで構成されています。これらはすべて手動でプログラムする必要があります。

たとえば、 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
    "

私は機能に精通していないので、これ以上仕方がありません。しかし、例に従うと、それを実行できるはずです。

4
o9000

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
1
kenorb