Неблокирующая клавиатура на WinCE для доступа к виртуальной клавиатуре - PullRequest
0 голосов
/ 26 октября 2009

Я отчаянно ищу решение, которое позволило бы мне читать события клавиатуры неблокирующим способом. Эти события клавиатуры генерируются VIRTUAL KEYBOARD, который поставляется с устройством WinCE. У меня есть консольное приложение, работающее на C ++, где пользователю предлагается перемещаться по ESC, U и другим символам через меню. Сначала я попытался использовать fread и stdin и понял, что он блокирует вызов и ждет возврата каретки. Затем я попытался подключиться к сообщению Windows WM_KEYUP, но никогда не получаю это сообщение Windows. Кроме того, я пытался использовать QtGUI вместе с событием QKeyEvent, но я никогда не получал никакого события. Интересно, возможно ли вообще получать неблокирующие события клавиатуры на устройстве WinCE. Буду рад, если у вас есть предложения!

Ура, Янв

1 Ответ

1 голос
/ 26 октября 2009

GetAynchKeyState будет читать состояние всей (виртуальной) клавиатуры. В качестве альтернативы вы можете передать дескриптор консоли на WaitForSingleObject с таймаутом 0 миллисекунд. Это всегда будет возвращаться немедленно, но возвращаемое значение скажет вам, есть ли у клавиатуры ожидание ввода - если она возвращается с истекшим временем ожидания, то нет. Если он возвращает WAIT_OBJECT_0, есть входные данные, ожидающие чтения. Как еще одна альтернатива, есть также GetNumberOfConsoleInputEvents, который сообщает вам, сколько ввода ожидает чтения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...