
11.3.3调用键盘挂钩DLL
我刚刚解释了键盘挂钩DLL的实现。本节将通过一个简单的对话框项目示例来说明此DLL的调用方法。
(1)创建一个基于对话框的项目CatchKeyBoardTest。在对话框中添加两个按钮:一个名为Capture,另一个名为Release。

(2)要隐式调用DLL,首先需要加载DLL的头文件并加载与DLL相对应的lib文件。
- #include "catchkey.h"
- #pragma comment("CatchKeyBoard.lib",lib)
注意:当然,为方便起见,您可以直接加载lib文件,然后在VC ++6.0集成开发环境的项目菜单中选择“添加项目文件”。然后选择lib文件。

([3)添加了两个按钮的处理功能,一个用于启动键盘挂钩,一个用于结束键盘挂钩。
- 01 //开始捕获键盘钩子事件
- 02 void CCatchKeyBoardTestDlg::OnCatch()
- 03 {
- 04 DWORD dwVK[] = {'P'};
- 05 int nLength = sizeof(dwVK) / sizeof(DWORD);
- 06 StartCatch(dwVK, nLength, this->m_hWnd); //开始捕获键盘消息
- 07 }
- 08 //停止捕获键盘钩子事件
- 09 void CCatchKeyBoardTestDlg::OnRelease()
- 10 {
- 11 StopCatch(); //停止捕获
- 12 }
(4)启动键盘挂钩时,键盘挂钩DLL将开始监视所有进程的键盘事件。一旦有Ctrl和P的组合键,它将向该表格发送消息。它必须采用这种形式。为响应此事件,请如下定义事件(请注意,该事件必须与DLL中的值一致):

- #define WM_MY_SHORTS (WM_USER + 105)
然后实现此事件的处理功能:
- 01 LRESULT CCatchKeyBoardTestDlg::CatchKey(WPARAM wParam, LPARAM lParam)
- 02 {
- 03 MessageBox("已经捕获Ctrl+P"); //提示捕获到消息的信息
- 04 return 0;
- 05 }

发出此事件时,将弹出一个信息提示框。 ***要映射此消息和消息处理事件:
(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
火腿鹅肝鱼子酱螃蟹
还没朋友
RIO本人购买价格12元