XCB
を使用して、別のプログラムからウィンドウ(現在アクティブなウィンドウ)にキー押下またはキー解放イベントを送信するにはどうすればよいですか?XCBを使用してアプリケーションにキーイベントを送信するにはどうすればよいですか?
XLib
を使用してチュートリアルを見つけましたが、XCB
を使用したいと思います。
私はxcb_send_event
に電話しなければならないと思いますが、何をパラメータとして渡すべきかわかりません。
XCB
を使用して、別のプログラムからウィンドウ(現在アクティブなウィンドウ)にキー押下またはキー解放イベントを送信するにはどうすればよいですか?XCBを使用してアプリケーションにキーイベントを送信するにはどうすればよいですか?
XLib
を使用してチュートリアルを見つけましたが、XCB
を使用したいと思います。
私はxcb_send_event
に電話しなければならないと思いますが、何をパラメータとして渡すべきかわかりません。
xcb_test_fake_input()関数を使用して、アクティブウィンドウへの入力を偽装するためにXTEST拡張機能を使用できるはずです。
#include <xcb/xtest.h>
...
xcb_test_fake_input(c, XCB_KEY_PRESS, keycode, XCB_CURRENT_TIME, XCB_NONE, 0, 0, 0);
xcb_test_fake_input(c, XCB_KEY_RELEASE, keycode, XCB_CURRENT_TIME, XCB_NONE, 0, 0, 0);
実例はxte program in xcb/demosを参照してください。
ありがとうございます!ほとんどのアプリは 'send_event'をブロックしていますし、' test_fake_input'はそのトリックのように聞こえます。 g ++でコンパイルするには何かが含まれていますか?私は現在 'g ++ main.cc -o trigger -std = C++ 11 -lxcb'でコンパイルしています。ありがとう! – Noitidart
ほとんどのアプリケーションではsend_events()がブロックされているので注意してください。 X11の初期の段階に戻って、他のユーザーにxtermsを入力するために使用しました。 :-) –
私は、私のキー押下を記録してから再び再生しようとしています。すなわち、時間を節約するためにマクロを記録しています。 – ar31
アプリケーションレベルでは、X11で低レベルよりも作業を行う方が良いです。 –