1

さまざまな理由で、さまざまなウィンドウにキー押下イベントを送信する必要があるプログラムがあります。私が今使っているもの

XEvent event;
/* set some other stuff*/
event.type = KeyPress;
event.xkey.keycode     = XKeysymToKeycode(display,XStringToKeysym(curr_key));

小文字と数字で動作しますが、Enterキーと大文字を送信できるようにこれを変更する必要があります。

4

1 に答える 1

1

XStringToKeysymのマニュアルページから:

void XConvertCase(KeySym keysym、KeySym * lower_return、KeySym * upper_return);

XConvertCase関数は、KeySymが大文字と小文字を変換する場合、指定されたKeysymの大文字と小文字を返します。それ以外の場合、指定されたKeySymはlower_returnとupper_returnの両方に返されます。ラテン文字とキリル文字以外のKeySymsの変換のサポートは、実装に依存します。

すべてのkeysymsは/usr/include/X11/keysymdef.hにあります。たとえば、EnterキーはXK_Returnです。XK_aやXK_Aなどの文字もあります。

于 2013-01-03T11:57:24.063 に答える