0

我正在拼命寻找一种解决方案,使我能够以非阻塞方式读取键盘事件。这些键盘事件是由VIRTUAL KEYBOARDWinCE 设备自带的。我有一个在 C++ 中运行的控制台应用程序,要求用户通过菜单中的“ESC”、“U”和其他字符进行导航。我首先尝试使用 fread 和 stdin 并意识到它正在阻塞调用并等待回车。然后我尝试连接到 Windows 消息 WM_KEYUP,但我从未收到此 Windows 消息。此外,我尝试将 QtGUI 与事件 QKeyEvent 一起使用,但我从未收到任何事件。我想知道通常是否可以在 WinCE 设备上接收非阻塞键盘事件。如果您有任何建议,我将很高兴!

干杯,简

4

1 回答 1

1

GetAynchKeyState将读取整个(虚拟)键盘的状态。或者,您可以将句柄传递给控制台WaitForSingleObject,超时为 0 毫秒。这总是会立即返回,但返回值会告诉你键盘是否有输入等待——如果它在超时过期的情况下返回,则没有。如果返回WAIT_OBJECT_0,则有输入等待读取。作为另一种选择,还有GetNumberOfConsoleInputEvents,它告诉您有多少输入正在等待读取。

于 2009-10-26T13:59:20.610 回答