MFC -- 实现键盘HOOK

简介: MFC -- 实现键盘HOOK

一、新建一个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


禁止非法,后果自负


目录
相关文章
|
7月前
MFC -- 实现键盘HOOK
MFC -- 实现键盘HOOK
88 0
|
7月前
MFC -- 键盘全局HOOK
MFC -- 键盘全局HOOK
50 0
[07-04] 用MASM32编写全屏窗口程序
[07-04] 用MASM32编写全屏窗口程序
按键驱动-实现短按、长按、双击、长按抬起事件
按键驱动-实现短按、长按、双击、长按抬起事件
|
API
LyScript 实现Hook隐藏调试器
LyScript 插件集成的内置API函数可灵活的实现绕过各类反调试保护机制,前段时间发布的那一篇文章并没有详细讲解各类反调试机制的绕过措施,本次将补充这方面的知识点,运用LyScript实现绕过大多数通用调试机制,实现隐藏调试器的目的。
76 0
LyScript 实现Hook隐藏调试器
|
Windows C++ API
MFC 定制控件(Customize Control) 及 MFC CWnd和WIN32 HWND关联方法
MFC 定制控件(Customize Control) 及 MFC CWnd和WIN32 HWND关联方法  文档将概述MFC中定制自定义控件的3种方法: 拥有者绘制控件(Owner Drawing Control and Menu)   自绘制控件(self drawing contro...
1541 0
|
索引
MFC 菜单编程 -- 总结 .
菜单结构 一个菜单栏可以有若干个子菜单,而一个子菜单又可有若干个菜单项。对于菜单栏的子菜单,由左至右从0开始索引。对于特定的子菜单的菜单项,由上至下建立从0开始的索引。访问子菜单和菜单项,均可通过其索引或标识进行。
1283 0
MFC中MessageBeep与sndPlaySound播放声音函数使用
MessageBeep(0x00000000L);        //用来播放系统默认音频文件,如0x00000000L为系统提示音,具体音频对应规则,请参照MSDN。   sndPlaySound函数用来播放指定音频WAV文件,分为两种: 同步模式:音乐播放过程中函数不返回,播放完成才返回 异步播放在做游戏等需要播放时间较长的音乐时使用,因为程序不会在音乐播放过程中有假死的情况。
2741 0
MFC弹出对话框几种方法总结
一、点击菜单按钮弹出对话框 1、在资源视图中(.rc文件夹下)找到menu,选择需要弹框的菜单项; 2、点击菜单项,修改菜单ID,在主程序中用ON_COMMAND()将ID和函数关联,要在主程序的头文件中声明被关联函数; ...
3727 0