VC++里是怎么实现键盘读取的??

来源:百度知道 编辑:UC知道 时间:2024/06/22 04:54:30
我知道TC里可以用bioskey实现按键检测,在VC++里是怎么实现类似功能的呢??

别动不动就钩子,系统提供的有API可以使用

GetKeyState,取指定虚拟键的状态,跟线程消息相关

GetAsyncKeyState,同上,不过此API和线程消息无关,直接取的物理键盘按键的状态

GetKeyboardState,取键盘所有键的状态,传入是一个255个字节单位的数组。传出但是对应数值的虚拟键的状态

SetKeyboardState,同上,这个是设置。(假设置,即设置的结果表现在当前线程的消息队列中而已)

MapVirtualKey ,虚拟键和扫描码之间的转换操作

keybd_event,模拟键盘输入

SendInput ,模拟一个键盘、鼠标事件。发送到当前线程的消息队列

用消息钩子

在VC中没有直接检测键盘按键的函数,所有功能都是通过消息驱动来实现的。所以,可以使用SetWindowsHookEx函数来安装底层键盘钩子,通过LowLevelKeyboardProc设置底层键盘钩子函数。
如果有问题,可以加入C/C++/VC爱好者QQ群:12927269