zl程序教程

您现在的位置是:首页 >  其他

当前栏目

MFC -- 实现键盘HOOK

2023-03-14 22:59:35 时间

一、新建一个MFC应用程序


0a2653c851af460fa595bd959398a8f1.png0eacb84100b54626af849e6b562bf92a.png


二、选择资源视图,打开界面设置(IDD_KEYBOARDHOOK_DIALOG)


2d65d23f6d4748949b924e4057485923.png2e9b90b2ca334476abebe75bafe6eeaa.png


三、删除原有的控件,从工具箱添加一个按钮


4cebaac233b3433da32a72337a77fc60.png


四、修改按钮的标题属性,双击进入开始编写代码


6de278e6d6694ce5bb08e7e842b7e74b.png


五、代码编写


1、编写HOOK按钮事件,点击按钮创建一个hook,返回句柄

//1、创建一个hook
       hk = SetWindowsHookEx(WH_KEYBOARD, //hook类型,键盘hook
              KeyboardProc, //回调函数
              NULL, //第三方的注入dll,全局hook使用
              GetCurrentThreadId());//线程id,填0表示hook所有程序
       if (hk == NULL)//如果创建失败,弹出信息框
       {
              AfxMessageBox(L"HOOK失败");
              return;
       }

2、回调函数

HHOOK hk;
//键盘hook的回调函数
LRESULT CALLBACK KeyboardProc(int code, WPARAM wParam, LPARAM lParam)
{
       OutputDebugStringW(L"键盘被hook!!!");
       //钩子执行完后执行该函数
       return CallNextHookEx(hk, code, wParam, lParam);
}

六、运行结果


7a399525ddec4b77923c464820b33738 (1).png


禁止非法,后果自负