11.3.3调用键盘挂钩DLL

电脑杂谈  发布时间:2020-11-28 02:01:40  来源:网络整理

键盘钩子调用_键盘钩子ocx调用失败_键盘钩子调用

11.3.3调用键盘挂钩DLL

我刚刚解释了键盘挂钩DLL的实现。本节将通过一个简单的对话框项目示例来说明此DLL的调用方法。

(1)创建一个基于对话框的项目CatchKeyBoardTest。在对话框中添加两个按钮:一个名为Capture,另一个名为Release。

键盘钩子调用_键盘钩子调用_键盘钩子ocx调用失败

(2)要隐式调用DLL,首先需要加载DLL的头文件并加载与DLL相对应的lib文件。

  1. #include "catchkey.h"  
  2. #pragma comment("CatchKeyBoard.lib",lib)  

注意:当然,为方便起见,您可以直接加载lib文件,然后在VC ++6.0集成开发环境的项目菜单中选择“添加项目文件”。然后选择lib文件。

键盘钩子调用_键盘钩子ocx调用失败_键盘钩子调用

([3)添加了两个按钮的处理功能,一个用于启动键盘挂钩,一个用于结束键盘挂钩。

  1. 01  //开始捕获键盘钩子事件  
  2. 02  void CCatchKeyBoardTestDlg::OnCatch()   
  3. 03  {  
  4. 04      DWORD dwVK[] = {'P'};  
  5. 05      int nLength = sizeof(dwVK) / sizeof(DWORD);   
  6. 06      StartCatch(dwVK, nLength, this->m_hWnd);        //开始捕获键盘消息  
  7. 07  }  
  8. 08  //停止捕获键盘钩子事件  
  9. 09  void CCatchKeyBoardTestDlg::OnRelease()   
  10. 10  {  
  11. 11      StopCatch();                                    //停止捕获  
  12. 12  }  

(4)启动键盘挂钩时,键盘挂钩DLL将开始监视所有进程的键盘事件。一旦有Ctrl和P的组合键,它将向该表格发送消息。它必须采用这种形式。为响应此事件,请如下定义事件(请注意,该事件必须与DLL中的值一致):

键盘钩子ocx调用失败_键盘钩子调用_键盘钩子调用

  1. #define WM_MY_SHORTS (WM_USER + 105) 

然后实现此事件的处理功能:

  1. 01  LRESULT CCatchKeyBoardTestDlg::CatchKey(WPARAM wParam, LPARAM lParam)  
  2. 02  {  
  3. 03      MessageBox("已经捕获Ctrl+P");               //提示捕获到消息的信息  
  4. 04      return 0;  
  5. 05  }  

键盘钩子调用_键盘钩子调用_键盘钩子ocx调用失败

发出此事件时,将弹出一个信息提示框。 ***要映射此消息和消息处理事件:

(5)单击“捕获”按钮后,按Ctrl和P组合键,窗口将弹出提示消息,如图11.14所示。单击“释放”按钮,将停止Ctrl + P的捕获。

键盘钩子调用

498)this.width = 498;' onmousewheel ='javascript:return big(this)'height = 132 alt =“” src =“” width = 271 border = 0>

图11.14捕获Ctrl + P


本文来自电脑杂谈,转载请注明本文网址:
https://www.pc-fly.com/a/bofangqi/article-336482-1.html

    相关阅读
      发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

      热点图片
      拼命载入中...