CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
英特尔®游戏设计大赛100美元现金周周送 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  VC/MFC >  硬件/系统

关于键盘问题(高分求助)

楼主mousefather(气死猫)2003-11-04 09:51:59 在 VC/MFC / 硬件/系统 提问

我要做一个键盘测试的小程序,目的很简单,就是测试所有按键是否能用,我的做法是先在屏幕上画一个键盘,用户按一个键亮一个键,有点类似游戏手柄测试工具之类的东西,但是有个问题,大部分的键都可以测,就是一些功能键,我只想得到他按下去的键值,不想让他起作用,比如开始键,休眠,开关机键等,我虽然能得到键值,但是没办法让他失效,不知道有什么好的办法,用hook的做法好像是可以让这些键失效,不大清楚,请高手指点,顺便问一下,哪里有所有键盘键值的表? 问题点数:0、回复次数:9Top

1 楼carbon107(<软件开发思想.h>)回复于 2003-11-04 10:25:27 得分 0

以下是大键盘区  
  f1       0x3B00  
  f2       0x3C00  
  f3       0x3D00  
  f4       0x3E00  
  f5       0x3F00  
  f6       0x4000  
  f7       0x4100  
  f8       0x4200  
  f9       0x4300  
  f10     0x4400  
  f11     0x8500  
  f12     0x8600  
  0         0x0B30  
  1         0x0231  
  2         0x0332  
  3         0x0433  
  4         0x5434  
  5         0x0635  
  6         0x0736  
  7         0x0837  
  8         0x0938  
  9         0x0A39  
  左       0x4BE0  
  右       0x4DE0  
  上       0x48E0  
  下       0x50E0  
  tab     0x0F09  
  -         0x0C2D  
  +         0x0D3D  
  回车   0x1C0D  
   
  以下是小数字键盘  
  0         0x5200  
  1         0x4F00  
  2         0x5000  
  3         0x5100  
  4         0x4B00  
  5         0x4C00  
  6         0x4D00  
  7         0x4700  
  8         0x4800  
  9         0x4900  
  -         0x4A2D  
  +         0x4E2B  
  回车   0xE00D  
   
  其它的编程实现  
  http://www.156ok.com/article/article_list.asp?account_id=920  
  键盘HOOK程序,看看这个能不能帮助你Top

2 楼mousefather(气死猫)回复于 2003-11-04 11:32:46 得分 0

谢谢楼上的,不过还是存在我说的问题,功能键没办法屏蔽掉,按下win键还是会弹出开始菜单,还有关机,休眠等键,有没什么办法可以让他们失效Top

3 楼9headbird(九头鸟)回复于 2003-11-04 13:21:10 得分 0

用底层键盘钩子LowLevelKeyboardProc()可以解决这个问题  
  注入钩子SetWindowsHookEx(WH_KEYBOARD_LL,(HOOKPROC)LowLevelKeyboardProc,hins,0);  
  在回调函数LRESULT   CALLBACK   LowLevelKeyboardProc(int   nCode,   WPARAM   wParam,     LPARAM   lParam)中进行判断:  
            如果wParam==WM_SYSKEYDOWN,则再判断由lParam得到的虚拟键值是否是你想要屏蔽的键;如果是,则在此回调函数中返回1(你可以在返回1之前发送一个消息并传递键值给你的测试程序);  
            这样你所指定功能间就被屏蔽掉了,  
  在你的应用程序中你应该在你测试完毕后卸载此钩子,否则该功能键就一直被屏蔽直至系统关机或注销Top

4 楼mousefather(气死猫)回复于 2003-11-04 14:30:18 得分 0

WH_KEYBOARD_LL这个东西不能用啊,msdn   里有,但是我在程序里写,编译不了,是不是这个东西现在不能用了?Top

5 楼ManFred2ManFred(曼弗雷德)回复于 2003-11-04 14:39:09 得分 0

到精华区去看看hook的用法介绍吧。Top

6 楼ifengfeng(fengfeng)回复于 2003-11-11 16:31:39 得分 0

#include   <afxwin.h>   //   MFC   core   and   standard   componentsTop

7 楼flinming(flinming)回复于 2003-11-11 17:22:05 得分 0

//拦截窗体PreTranslateMessage消息,看键盘触发哪个键  
  BOOL   CCsDlg::PreTranslateMessage(MSG*   pMsg)    
  {  
  if(pMsg->message==WM_KEYDOWN)  
  {  
  int   a   =   pMsg->wParam;  
  CString   b;  
  b.Format("%d",a);  
  this->SetWindowText(b);  
  这个你就可以确定是哪个键触发  
  }  
   
  return   CDialog::PreTranslateMessage(pMsg);  
  }Top

8 楼yintongshun(左岸思雨)回复于 2003-11-11 17:30:17 得分 0

WPARAM   wParam,     LPARAM   lParam这两个参数需要判断一下,如果你想屏蔽的键,就让他失效Top

9 楼carbon107(&lt;软件开发思想.h&gt;)回复于 2003-11-11 17:32:09 得分 0

来晚了大家都说了Top

相关问题

  • 高分求解模拟键盘输入
  • 键盘控制问题(高分相送!)
  • 模拟键盘按键问题(高分)
  • 高分求助:如何监视键盘的所有输入????
  • 怎么记录下键盘信息呢?高分相送。
  • 高分求键盘上每个键对应的值 (DOS)
  • 高手请进:源码分析win2000下的键盘锁定
  • !高分相送!如何屏蔽键盘热键
  • 高分求救,键盘不能用的问题,十万火急!!!!!
  • (高手请进)100分求模仿键盘操作问题

关键词

  • 键盘
  • 屏蔽
  • 键值
  • lowlevelkeyboardproc
  • 钩子
  • 失效
  • 功能键
  • pmsg
  • wparam
  • 键

得分解答快速导航

  • 帖主:mousefather

相关链接

  • Visual C++类图书
  • Visual C++类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo