サーバー上でリモートXアプリケーションを実行し、X11クライアントがUXインタラクションを処理するようにX11転送を設定したいと思います。
しかし、実際にユーザー対話を実行するためにX11クライアントを設定したり、プログラムで(スクリプト内で)偽にしたいと思います。
たとえば、マウスクリックまたはキーボードインタラクション(インストーラなど)が必要なアプリケーションを実行して完了するまで、そのクリックまたはキーボードキーストロークをスクリプトからアプリケーションにプログラムで送信できます。
可能ですか?これを達成する方法や開始位置は何ですか?または、X11プロトコルを再利用/ハイジャックして、ユーザーではなく対話を挿入するにはどうすればよいですか?
答え1
これまで私は見つけましたxdotool
マウスとキーボードの入力を簡単に偽造できるツールです。
単純なキーボードインタラクションのいくつかの例:
xdotool key a
xdotool key Down
xdotool key Tab
xdotool key "Return"
xdotool key "Control_L+t"
xdotool key Alt+1
xdotool key ctrl+v
xdotool key Super
xdotool key KP_Enter
xdotool key ctrl+Page_Up
xdotool key ctrl+U005C
xdotool key ctrl+shift+e
xdotool key --delay 1000 shift+minus # for underscore
xdotool key --clearmodifiers shift+Insert
xdotool key --clearmodifiers --window 0x2600006 alt+1 0 9 8 7 6 5 4 3
マウスの相互作用を含むサンプルスクリプト:
WINDOWID=$(xdotool selectwindow)
xdotool set_window --overrideredirect 1 $WINDOWID windowunmap $WINDOWID windowmap $WINDOWID
xdotool windowsize $WINDOWID 10 100%
# Set behaviors
xdotool behave $WINDOWID mouse-enter windowfocus windowsize --usehints 80 100% &
xdotool behave $WINDOWID mouse-leave windowsize 4 100% &
他の例:F5キーを押すことを最初のChromeウィンドウに送信する方法。
より多くのスクリプト例については、次のサイトにアクセスしてください。GitHubまたは公式ウェブサイト。
sudo apt-get install xdotool
たとえば、適切なリポジトリからインストールできます。源泉。
ワイン
X11 アプリケーションが Wine で実行されている場合は、次を使用することもできます。ワイン製造のヒント。調査するソースファイル(シェルスクリプトです)AutoHotkeyツールを使用してアプリケーションを制御する方法を案内します。
より高度な方法には、winedbg
デバッガの使用とプロセス接続が含まれます。
$ winedbg
Wine-dbg>info process
00000008 3 'terminal.exe'
Wine-dbg>attach 8
0xf7709c0e __kernel_vsyscall+0xe in [vdso].so: int $0x80
その後、デバッガを使用して直接対話できます(ヘルプの入手をman winedbg
参照)。