2011-12-30 10 views
0

プログラム私は、ユニコードを必要とする種類の仮想キーボードで作業しています。 http://goo.gl/pv9htから受け取ったコードを使って、キーコードに変換するときに通常(ASCII)keysymsで動作しますが、XKeysToKeycode()はXK_agrave(include/X11/keysymdefs.h)のようなkeysymで0を返します。X11ユニコードKeyEventの問題

私はまた、大文字で同じことを行う方法についてはあまりよく分かりません。 XK_A(これは大文字の 'A')で同じものを試してみると、 'a'と同じキーコードを返します。これは、出力 'xmodmap -pke'に基づいて同じキーコード(他の文字の束とともに)が同じであるため意味があります。しかし、キーコードの大文字の形式(XSendKeyEvent)を送信するにはどうすればよいですか?

助けていただければ幸いです。

答えて

1

あなたはあなたがXKeyEvent->状態に設定修飾キー(この場合のシフト)

を送る| = ShiftMask

状態のメンバーは、ポインタボタンの論理的な状態を示すために設定されていますButton1Mask、Button2Mask、Button3Mask、Button4Mask、Button5Mask、ShiftMask、LockMask、ControlMask、Mod1Mask、Mod2Mask、Mod3Mask、Mod4Maskのうちの1つまたは複数のビットの包括的な論理和であるイベント直前の修飾キー、およびMod5Mask。

出典:http://linux.die.net/man/3/xkeyevent

+0

はありがとうございます。最初の部分についてはどんな考えですか? – doomrobo

+0

私が知る限り、X apiを使ってUnicodeキーを送信する方法はありません。 –

+0

問題が解決しました。 Ctrl + Shift + u +(ユニコード番号)+リリースモッズのキーコードを送信することにしました。それがUbuntuで動作する方法です。 – doomrobo

関連する問題