Hook使用方法

大致步骤如下:

1、安装一个鼠标监视钩子

2、指向相应的钩子过程
3、指定线程由当前进程创建

4、指定于钩子过程相关的线程ID

需要函数:

HHOOK SetWindowsHookEx(
  int idHook,        // hook type
  HOOKPROC lpfn,     // hook procedure
  HINSTANCE hMod,    // handle tapplication instance
  DWORD dwThreadId   // thread identifier
);

具体步骤:

1、定义**钩子变量,窗口钩子的句柄,以及钩子函数的定义:这里只写了鼠标钩子和键盘钩子

HHOOK g_hMouse = NULL;//全局变量,用来保存SetWindowsHookEx返回的句柄
HHOOK g_hKeyboard = NULL;
HWND g_hWnd = NULL;
LRESULT CALLBACK MouseProc(int nCode,WPARAM wParam,LPARAM lParam)
{
	return 1;
}
LRESULT CALLBACK KeyBoardProc(int nCode,WPARAM wParam,LPARAM lParam)
{
// 	if (VK_SPACE == wParam || VK_RETURN == wParam)
/*	if (VK_F4 == wParam && (1 == (lParam>>29 & 1 )))
	{
		return 1;
	}
	else
		return CallNextHookEx(g_hKeyboard,nCode,wParam,lParam);*/
	if (VK_F2 == wParam)
	{
		::SendMessage(g_hWnd,WM_CLOSE,0,0);
		UnhookWindowsHookEx(g_hKeyboard);
		UnhookWindowsHookEx(g_hMouse);
	}
	return 1;
}

2、启动钩子:在源文件中写上以下代码

	g_hWnd = m_hWnd;
	g_hMouse = SetWindowsHookEx(WH_MOUSE,MouseProc,NULL,GetCurrentThreadId());
//安装一个鼠标监视钩子
//指向相应的钩子过程
//指定线程由当前进程创建
//指定于钩子过程相关的线程ID
	g_hKeyboard = SetWindowsHookEx(WH_KEYBOARD,KeyBoardProc,NULL,GetCurrentThreadId());
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值