0

私の必要は、charをキーコードに変換して、でイベントを送信することXSendEventです。

を使用してXStringToKeysym("a")いますが、文字を使用:すると無効な結果が得られます。

keysym の使用をバイパスして、char を直接XKeyEventキーコードに変換することは可能ですか?

どんな助けでも大歓迎です!

4

3 に答える 3

3

文字の Unicode 表現を取得して、その前に追加Uできます。たとえば、:これらの場合は同じことを行います:

XStringToKeysym("colon")
XStringToKeysym("U003A")
于 2015-12-14T15:37:18.640 に答える
1

実際、@Artyomの答えよりもうまくいくことができます。見ると、 0x20-0xFF の場合、文字がに直接マップされて<X11/keysymdef.h>いることがわかります。したがって、その範囲の文字を として直接使用し、残りの 32 文字をマップする方が簡単だと思います。ASCIIXKeySymsKeyCodes

サンプル コードを含む詳細な回答については、 https ://stackoverflow.com/a/25771958/3149905 を参照してください。

于 2014-09-10T17:26:11.093 に答える
0

XStringToKeysym名前をキーシムに変換するため、":"機能しません"colon"。代わりに使用する必要があります。

キーコードは標準ではありません (キーボード レイアウトはさまざまです)。そのため、キーシムが使用され、 で定義されてい<X11/keysymdef.h>ます。

あなたができる最善のことは、XKeysymToKeycodeXK_a と XK_colon を使用することです。

于 2013-06-12T17:40:00.003 に答える