全局hook键盘消息

把hook功能写进dll,程序调用dll,对键盘消息进行hook

hook.dll源代码如下

#include <windows.h>

extern "C" __declspec(dllexport) VOID SetHookOn();
extern "C" __declspec(dllexport) VOID SetHookOff();

HHOOK g_Hook = NULL;
HINSTANCE g_Inst = NULL;

LRESULT CALLBACK KeyboardProc(int code, WPARAM w, LPARAM l)
{
	if(w == WM_KEYDOWN)
        MessageBox(NULL,0,TEXT("摁下按键"),0);
    else if(w == WM_KEYUP)
        MessageBox(NULL,0,TEXT("抬起按键"),0);
	return CallNextHookEx(g_Hook,code,w,l);
}

BOOL APIENTRY DllMain(HANDLE hModule, DWORD ul_reason_for_call, LPVOID lpReserved)
{
	g_Inst = (HINSTANCE)hModule;
	return true;
}

VOID SetHookOn()
{
	g_Hook = SetWindowsHookEx(WH_KEYBOARD_LL,KeyboardProc,g_Inst,0);
}

VOID SetHookOff()
{
	UnhookWindowsHookEx (g_Hook);
}


MFC窗口程序部分代码如下

#include <windows.h>

extern "C" VOID SetHookOn();
extern "C" VOID SetHookOff();

#pragma comment(lib,"hook.lib")

void Cmfc4Dlg::OnBnClickedButton1()
{
	// TODO: 在此添加控件通知处理程序代码
	SetHookOn();
}


void Cmfc4Dlg::OnBnClickedButton2()
{
	// TODO: 在此添加控件通知处理程序代码
	SetHookOff();
}


点击Button1后,再按键盘,弹出窗口如下





  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值