1

ここxinputで概要を説明したコマンドを使用して、偽のマウス ポインターを作成しました。

コマンドを使用して自動化したいと思いますxteが、残念ながら、xte解放したいハードウェアマウスの制御のみを取得しているようです。

のマニュアル ページにxteは、制御するポインタを指定するフラグがありません。誰かが何かアイデアを持っているかどうか疑問に思っていましたか?

注: 2 番目のポインターは、グラフィカル パイプラインを実行しながら同じコンピューターで作業できるようにするためのものです。


編集:xteソースを見ると、XQueryPointerへの参照が見つかりました

Bool XQueryPointer(display, w, root_return, child_return, root_x_return, root_y_return, 
                     win_x_return, win_y_return, mask_return)
      Display *display;
      Window w;
      Window *root_return, *child_return;
      int *root_x_return, *root_y_return;
      int *win_x_return, *win_y_return;
      unsigned int *mask_return;

//Arguments:
display         Specifies the connection to the X server.
w               Specifies the window.
root_return     Returns the root window that the pointer is in.
child_return    Returns the child window that the pointer is located in, if any.
root_x_return
root_y_return   Return the pointer coordinates relative to the root window's origin.
win_x_return
win_y_return    Return the pointer coordinates relative to the specified window.
mask_return     Returns the current state of the modifier keys and pointer buttons. 

ご覧のとおり、最初のマウスポインターのみを返し、別のマウスポインターのオプションを提供しません。


Edit2: libx11-dev ソースを調べると、./src/QuPntr.c と Xlibint.h で言及されていますが、コードが読みにくくなっており、ここでは理解できません。

4

2 に答える 2

0

xinputXI2 拡張機能を使用して、複数のポインターを許可します。このライブラリ ( ) は、XIQueryPointer、XIWarpPointer、XIGetClientPointer などX11/extensions/XInput2.hのデバイス パラメータ ( で参照されるものと同じ) を受け入れる "XI" で始まる関数を提供します。xinput --listしたがって、自動化ツールが XI2 をサポートしていない場合でも、偽のポインターをプログラムで制御できます。

xinput --reattach簡単に言えば、ハードウェア デバイス (スレーブ デバイス) から新しいポインタ (マスター デバイス) への接続で十分です。

非常に遅い回答ですが、Web検索でこの質問に出くわしたので、参考のために知っていることを追加します。

于 2017-11-20T15:19:22.753 に答える