私は、Xの下にあるウィンドウのキーストロークをキャプチャし、OSDなどを使って画面に表示する小さなアプリケーションを作成しようとしています。アイデアはスクリーンキャストなどのためにそれを使用することです。XウィンドウのKeyPressイベント
私はxevで手術を試みたが、うまく動作するようになったが、面白いことに気づいた。私自身が作成するウィンドウでxevを使用すると、KEyPressイベントとKeyReleaseイベントが登録され、それらを見ることができます。しかし、xevに-id
スイッチを使用して別のウィンドウを監視し、そこにキーストロークを記録しようとすると、KeyPressイベントとKeyReleaseイベントが常に表示されるわけではありません。
いくつかのウィンドウは期待どおりに動作します(例:gnome-terminal)。他の人はしません(emacs-gtkなど)。
これらのウィンドウのキーストロークを取得するにはどうすればよいですか?
興味深いのは、「Alt-Tab」を使ってEmacsウィンドウにフォーカスを当てると、イベントを受け取ったように見えます。マウスをマウスで動かすと、 –
私はそれが 'XSetInputFocus'となると思います。 –
プログラムで、' XSetInputFocus'を使用します。 –