私の必要は、charをキーコードに変換して、でイベントを送信することXSendEvent
です。
を使用してXStringToKeysym("a")
いますが、文字を使用:
すると無効な結果が得られます。
keysym の使用をバイパスして、char を直接XKeyEvent
キーコードに変換することは可能ですか?
どんな助けでも大歓迎です!
文字の Unicode 表現を取得して、その前に追加U
できます。たとえば、:
これらの場合は同じことを行います:
XStringToKeysym("colon")
XStringToKeysym("U003A")
実際、@Artyomの答えよりもうまくいくことができます。見ると、 0x20-0xFF の場合、文字がに直接マップされて<X11/keysymdef.h>
いることがわかります。したがって、その範囲の文字を として直接使用し、残りの 32 文字をマップする方が簡単だと思います。ASCII
XKeySyms
KeyCodes
サンプル コードを含む詳細な回答については、 https ://stackoverflow.com/a/25771958/3149905 を参照してください。
XStringToKeysym
名前をキーシムに変換するため、":"
機能しません"colon"
。代わりに使用する必要があります。
キーコードは標準ではありません (キーボード レイアウトはさまざまです)。そのため、キーシムが使用され、 で定義されてい<X11/keysymdef.h>
ます。
あなたができる最善のことは、XKeysymToKeycode
XK_a と XK_colon を使用することです。