nuaa001
驱动牛犊
驱动牛犊
  • 注册日期2004-01-11
  • 最后登录2005-08-08
  • 粉丝0
  • 关注0
  • 积分10分
  • 威望1点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
阅读:1098回复:2

keybd_event()编译总是有问题, 郁闷啊!

楼主#
更多 发布于:2004-03-10 12:29
在串口驱动里调用keybd_event()编译总是有问题,搞不懂为什么,
是否驱动中不支持这个函数,但在msdn中又说什么此函数用于keyboard driver 中。
很是郁闷,那位老大指点一下小弟,万分感谢!
Owen.Guo
驱动中牛
驱动中牛
  • 注册日期2001-03-30
  • 最后登录2012-03-29
  • 粉丝0
  • 关注1
  • 积分402分
  • 威望260点
  • 贡献值0点
  • 好评度26点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2004-03-13 13:44
  Header: Declared in Winuser.h; include Windows.h.
  Library: Use User32.lib.

Windows NT/2000 or later: This function has been uperseded. Use SendInput instead.


#include <windows.h>

   void SetNumLock( BOOL bState )
   {
      BYTE keyState[256];

      GetKeyboardState((LPBYTE)&keyState);
      if( (bState && !(keyState[VK_NUMLOCK] & 1)) ||
          (!bState && (keyState[VK_NUMLOCK] & 1)) )
      {
      // Simulate a key press
         keybd_event( VK_NUMLOCK,
                      0x45,
                      KEYEVENTF_EXTENDEDKEY | 0,
                      0 );

      // Simulate a key release
         keybd_event( VK_NUMLOCK,
                      0x45,
                      KEYEVENTF_EXTENDEDKEY | KEYEVENTF_KEYUP,
                      0);
      }
   }

   void main()
   {
      SetNumLock( TRUE );
   }
Owen.Guo 祝你成功!
nuaa001
驱动牛犊
驱动牛犊
  • 注册日期2004-01-11
  • 最后登录2005-08-08
  • 粉丝0
  • 关注0
  • 积分10分
  • 威望1点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2004-03-14 16:34
首先感谢Owen.Guo老兄的回复,呵呵
msdn中的方法我也用了,无奈总是编译无法通过,但在一个应用程序中没有问题。
把头文件包含进去以后,报一大堆错误,即使我把头文件中有关宏定义拷贝进我的文件中,链接时又报错,好像是找不到库函数中keybd_event,我用的例子也很简单,就是ddk中自带的serial驱动例子,按道理不应该出错的,
不知道那位老大可以帮我看看问题出在哪里?
小弟万分感谢,
附件名称/大小 下载次数 最后更新
2004-03-14_serial.rar (132KB)  4
游客

返回顶部