ユーザーのキーボードストロークを聞く必要があるプログラムを書いています。
関数 XGrabKeyboard() を使用します。これが私のコードです。
XGrabKeyboard(pDisplay, DefaultRootWindow(pDisplay), True, GrabModeAsync, GrabModeAsync, CurrentTime);
XEvent event;
while (true)
{
XNextEvent(pDisplay, &event);
switch (event.type)
{
...
}
}
ただし、キーボードとカーソルがフリーズします。
man ページを調べたところ、「3 番目のパラメーターは、キーボード イベントを通常どおり報告するかどうかを示すブール値を指定します」としか書かれていません。
true または false の両方、または 3 番目のパラメーター、4 番目と 5 番目のパラメーターの GrabModeAsync と GrabModeSync の両方を試しましたが、機能しません。
XGrabKeyboard() を呼び出した後、キーボードがフリーズし、マウス クリックが応答しません。
何か案は?