2017-01-21 8 views
0

を「つかんで」いる間なら、私はXGrabKeyでキーをつかんでいますプレスとつかんキーを保持しているが、他のキーも

int mods = 0; 
bool ownerevents = true; 
XGrabKey(display, MY_KEYCODE, mods, rootwin, ownerevents, GrabModeAsync, GrabModeAsync); 

それは正常にキーをつかみます。私の例ではMY_KEYCODEはキーbのものです。だから私のイベントループは、bキーを押した場合にのみピックアップされます。ただし、bキーを押したまま他のキーを押すと、それらもイベントループに報告されてブロックされているので、一時的に「把握」されます。私はをKeyPressedの部分に試してみたいと思っていましたが、動作していません。

私のグラブされたキーが保持されている間に、他のキーを取得する方法についてのアイデアはありますか?

+1

いいえ、これはできません。把持されたキーが押されると、キーが離されるまでキーボード全体がつかみます。あなたは何をしようとしているのですか? –

+0

ありがとう@n.m。読書とコメントのために!私が1つのキーを押すと、別のキーを送信するところで、アプリケーションはどのように動作しますか? "e"を押すと、 "a"を送るはずです。彼らは 'KeyRelease'でそれを送っていますか? – Noitidart

+1

これは、通常、キーを再マッピングすることで行われます。 –

答えて

1

あなたが望むことはできません。把持されたキーが押されると、キーが離されるまでキーボード全体がつかみます。

キーにバインドされたkeysymをプログラムでグローバルに置き換えるには、通常、キーの再マッピングを使用します。 XChangeKeyboardMappingおよびXkbChangeMapを参照してください。

鍵を永久に再マップし、それがどのように処理されても気にしない場合は、設定ファイルを作成/変更し、プログラミングを気にしない方がいいでしょう。 xmodmapおよびxkbcompを参照してください。

+0

ありがとうございます@ n.m。 – Noitidart

関連する問題