2

MonoとX11でグローバルホットキーを実装しようとしています。残念ながら、アプリケーションはを使用しているため、この質問System.Windows.Formsで提案されているGDK#イベントフィルターを使用することはできません。

使用XGrabKeyは機能しますが、イベントループに問題があります。アプリケーションを閉じるとき、X11イベントループを処理するスレッドはまだハングしXNextEventます。それを回避する方法はありますか?でポーリングするのはやめたほうがいいXPendingです。XNextEventどういうわけかダミーイベントをキャンセルまたは送信できますか?

ルートウィンドウを呼び出しているので、残念ながら、やXGrabKeyのようなイベントは発生しません。DestroyNotifyUnmapNotify

4

1 に答える 1

1

XSendEventを送信するために使用しますXClientMessageEvent。独自のアトムを作成し、イベントのメンバーを設定して、ルート ウィンドウをAtom監視している可能性のある他のアプリが影響を受けないようにします。XClientMessageEvent

イベント ループで、このアトムを確認し、取得した場合は終了します。

于 2012-06-01T19:41:36.413 に答える