键盘在启动时没有响应
keyboard is not responding at boot time?
我正在启动时编写碎片整理应用程序。但是,问题是在启动时,当显示器启动并出现黑屏时,按下时它没有响应任何键盘键?
我的代码是这样的:
- 我调用 NtCreateFile 来对象"设备\键盘类 0",它返回成功使用对象的句柄。
- 然后我使用 NtCreateEvent 创建事件,它成功返回。
- 然后我使用句柄和事件调用 NtReadFile。
- 然后我在 NtWaitForSingleObject 上等待事件在有要读的东西。
- 当我收到信号时,我将读取用户按下的键。
问题是步骤#5从未到达,并且我正在按USB键盘键,什么也没发生,好像没有按下键盘一样。
相同的代码适用于PS/2键盘,但使用USB键盘我不能阅读任何内容。
最后,我得到了解决方案。问题是关于您使用的键盘类型,即PS2或USB。您需要获取键盘界面的所有实例并同时从所有键盘读取。由于主板上有PS2键盘的端口,因此在启动时获得优先级。而对于USB键盘,我们需要增加一些延迟,因为Windows系统只需要更多时间来注册USB键盘类实例。
相关文章:
- 如何创建一个空的全局类并在启动时实例化它
- 即使我读取了所有内容,在FIFO上打开的QSocketNotifier也会一直启动
- 使用 std::string () const 函数启动线程或未来
- 当服务中的事件被触发时,如何将响应从服务发送回客户端?
- 如何修复valgrind启动时的致命错误(与libc6-dbg和libc6-dbg:i386连接)
- 将向量作为类>(值)<向量启动和向量<类>[值]有什么区别
- 如何创建线程序列以按照启动顺序执行任务?
- WINAPI 注册应用程序重新启动时不清除打开的套接字
- 在挂钩启动新线程时解除挂钩进程
- 程序无法启动,因为缺少 libmpc-3.dll
- 从 exe 文件 (Visual Studio ) 启动时调试断言失败
- C++ 信号和插槽不工作:插槽不响应事件
- QSerialPort 在应用程序启动之前正在使用中
- 无法在 Arch Linux 中启动虚幻引擎 4
- NodeJs 服务器充斥着 UDP 广播,不发送响应
- C++关于指针和使用函数将它们启动到堆的行为究竟是什么?
- 该命令在QProcess中启动,不会返回Linux上的响应
- 错误 1503:服务未及时响应启动或控制请求
- 键盘在启动时没有响应
- Qt应用程序启动但没有响应