热情软件屋

 

如何使用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 键"

此问题由李海回答。

 
把这个问题推荐给朋友
   
   
您的意见类别
您的名字
您的电子邮件
您的建议(请尽可能详细)
 
 

版权所有 1997-2008 热情软件屋
如果您有任何建议和意见, 请给我发个电子邮件 askpro@china-askpro.com
Web Designed by ZebraStudio