4

教育目的で、とを使用してPythonスクリプトを作成しcwiidXlibWiiリモコンをマウスのように使用できるようにしました。

これまでのところ、設定された時間間隔ごとdisp.warp_pointer(dx,dy)に呼び出してから呼び出すことで、カーソルを移動させることができました。disp.sync()それを行うのに最も効率的な方法ではないかもしれませんが、少なくとも今のところ、それは単純で十分に機能します。

私がもっと苦労している問題は、マウスのクリックです。Xlibでマウスクリックをシミュレートするにはどうすればよいですか?ドラッグアンドドロップできるように、プレスイベントとリリースイベントを別々にしたいと思います。私はこの投稿に出くわしましたが、そこにあるすべてのソリューションは他のライブラリを使用しているようです。

4

2 に答える 2

5

Python Xlibのみを使用:

from Xlib import X
from Xlib.display import Display
from Xlib.ext.xtest import fake_input
d = Display()
fake_input(d, X.ButtonPress, 1)
d.sync()
fake_input(d, X.ButtonRelease, 1)
d.sync()

fake_inputシミュレートするマウスボタンを選択するための3番目のパラメータ。1/2/3は左/中央/右ボタンで、4/5と6/7は垂直および水平のホイールスクロールを実行する必要があります。

于 2013-06-07T19:40:26.423 に答える
3

プレーンXlib(C言語)では、XTestExtensionまたはを使用できますXSendEvent()。彼らのPythonバインディングについてはよくわかりません。おそらく、を使用したxcbバージョンのバインディングがありますxpyb

パッケージxteから呼び出されるバイナリもあります(Debian、次に)。は非常に使いやすく、そのソースコードを見て、の使用方法を学ぶこともできます。xautomationsudo apt-get install xautomationman xtexteXTestExtension

ポインタ:

于 2012-04-21T15:25:26.777 に答える