如何使用SetKeyboardState()函数修改键盘状态
编号:QA002025
建立日期: 1999年11月12日 最后修改日期:1999年11月12日
所属类别:
penghao:
操作系统: windows95 & 98
编程工具: Visual C++ 6.0
问题: 一个十六进制的编辑器,目前才用的是CRichEditView类来编写的,碰到一个问题,就是SetKeyboardState()这个函数不会使用。
回答:
在调用SetKeyboardState()之前需要调用GetKeyboardState()函数获得键盘状态。这两个函数都需要一个256个字节的数组作为参数。这个数组记录着键盘状态,每个键在数组中的位置由VK_常数决定,如下面的代码切换Num Lock键的状态:
BYTE bKeys[256];
GetKeyboardState(bKeys);
bKeys[VK_NUMLOCK] = !bKeys[VK_NUMLOCK];
SetKeyboardState(bKeys);
但是,SetKeyboardState在NT下通常不能很好的工作,比如这个例子。所以建议使用keybd_event,参考QA001753 "如何在程序中设置按下Caps Lock 键"。
此问题由李海回答。
| |
|
|
| |
|
|