网站导航免费论文 原创论文 论文搜索 原创论文 网学软件 学术大家 资料中心 会员中心 问题解答 原创论文 论文素材 设计下载 最新论文 下载排行 论文上传 在线投稿 联系我们
返回网学首页
网学联系
最新论文 推荐专题 热门论文 素材专题
当前位置: 网学 > 编程文档 > VC++ > 正文
重定义键盘的两种实现方法
来源:Http://myeducs.cn 联系QQ:点击这里给我发消息 作者: 用户投稿 来源: 网络 发布时间: 12/10/15
下载{$ArticleTitle}原创论文样式
很多事情。

UnhookWindowsHookEx(int idHook)函数即可实现对挂接钩子的卸载。

l         我们开始写程序吧!用MFC AppWizard建立一个工程名为: KBoardHook基于Dialog base的对话框程序,点击finish。

l         在KBoardHookDlg.cpp的最上边加上

HHOOK hhkLowLevelKybd2000;

hhkLowLevelKybd2000为全局变量。

l         为方便以后的操作预先在CKBoardHookDlg类中利用CLASSWIZARD实现一个响应WM_CREATE和WM_DESTROY消息的函数OnCreate( )与OnDestroy( )的框架,

l         在OnCreate()函数中通过SetWindowsHookEx与系统挂起钩子代码如下

hhkLowLevelKybd2000  = SetWindowsHookEx(WH_KEYBOARD_LL,

       LowLevelKeyboardProc,      AfxGetApp()->m_hInstance, 0);

l         在OnDestroy()中通过UnhookWindowsHookEx ()解除已经挂起钩子,释放系统资源, 代码如下:        UnhookWindowsHookEx(hhkLowLevelKybd2000);

l         这时在KBoardHookDlg.h中声明LowLevelKeyboardProc ,在class CKBoardHookDlg : public Cdialog的上面加入如下代码

LRESULT CALLBACK LowLevelKeyboardProc(int nCode, WPARAM wParam, LPARAM lParam);

// 当nCode为0(在winuser.h中有如下定义:#define HC_ACTION  0)时wParam, lParam才包含所应有的键盘信息,wParam的值代表了键盘的消息可以为WM_KEYDOWN

WM_KEYUP, lParam为指向KBDLLHOOKSTRUCT的指针。



l         再在KBoardHookDlg.cpp的最后加入如下代码(这此代码都是手工加入的,不能用ClassWzrd)













LRESULT CALLBACK LowLevelKeyboardProc(int nCode, WPARAM wParam, LPARAM lParam)

{

              PKBDLLHOOKSTRUCT p = (PKBDLLHOOKSTRUCT) lParam;

              if (nCode == HC_ACTION) {

                     int vKey=LOBYTE(p->vkCode);

                     switch (wParam)

                     {

                     case WM_KEYDOWN:

                            {

                                   if(vKey==27)

       
  • 下一篇资讯: 设计网络服务器ISAPI
  • 网学推荐

    免费论文

    原创论文

    浏览:
    设为首页 | 加入收藏 | 论文首页 | 论文专题 | 设计下载 | 网学软件 | 论文模板 | 论文资源 | 程序设计 | 关于网学 | 站内搜索 | 网学留言 | 友情链接 | 资料中心
    版权所有 QQ:3710167 邮箱:3710167@qq.com 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
    Copyright 2008-2015 myeducs.Cn www.myeducs.Cn All Rights Reserved
    湘ICP备09003080号