钩子编程(HOOK) 安装进程内鼠标钩子

作者 : 卿笃军

钩子函数: WINDOWS的钩子函数可以认为是WINDOWS的主要特性之一。利用它们,您可以捕捉您自己进程或其它进程发生的事件。通过“钩挂”,您可以给WINDOWS一个处理或过滤事件的回调函数,该函数也叫做“钩子函数”,当每次发生您感兴趣的事件时,WINDOWS都将调用该函数。

下面介绍如何安装一个进程内的鼠标钩子。

第一步:打开VC6.0,新建一个基于对话框的MFC应用程序。

第二步:将如下代码拷贝到BOOL CInnerHookDlg::OnInitDialog()上面的位置,(注意不是拷贝到OnInitDialog()里面)

HHOOK g_hMouse = NULL;
//Hook
LRESULT CALLBACK MouseProc(int nCode, WPARAM wParam,  LPARAM lParam)
{
	return 1;
}

第三步:在OnInitDialog()函数里面如下位置,复制一行如下代码~~~

	g_hMouse = SetWindowsHookEx(WH_MOUSE, MouseProc, NULL, GetCurrentThreadId());

好了,钩子安装成功~~~

第四步:运行程序,你会发现,鼠标点击事件已经被屏蔽掉了~

注释:

SetWindowsHookEx()函数用来安装钩子。其中参数如下(其返回值是该钩子的句柄):

SetWindowsHookEx(

nt idHook, \\钩子类型

HOOKPROC lpfn, \\回调函数地址

HINSTANCE hMod, \\实例句柄

DWORD dwThreadId); \\线程ID

钩子子程是一个回调函数,形式如下:

LRESULT CALLBACK HookProc

(

int nCode,

WPARAM wParam,

LPARAM lParam

);

钩子编程(HOOK) 安装进程内鼠标钩子,布布扣,bubuko.com

时间: 2024-11-02 23:27:04

钩子编程(HOOK) 安装进程内鼠标钩子的相关文章

钩子编程(HOOK) 安装进程内键盘钩子 (1)

摘要:钩子能够监视系统或进程中的各种事件消息.截获发往目标窗体的消息并进行处理.这样,我们就能够在系统中安装自己定义的钩子,监视系统中特定事件的发生.完毕特定的功能,比方截获键盘.鼠标的输入.屏幕取词,日志监视等等. 以下演示怎样安装进程内键盘钩子, Step 1:打开VC6.0.创建一个基于对话框的MFC应用程序. Step 2:在BOOL CHookDlg::OnInitDialog()函数上面编写例如以下代码:(注意是在上面编写.不是在OnInitDialog()里面) HHOOK g_h

钩子编程(HOOK) 安装进程内键盘钩子

作者 : 卿笃军 系统钩子:钩子可以监视系统或进程中的各种事件消息,截获发往目标窗口的消息并进行处理.这样,我们就可以在系统中安装自定义的钩子,监视系统中特定事件的发生,完成特定的功能,比如截获键盘.鼠标的输入,屏幕取词,日志监视等等. 下面演示如何安装进程内键盘钩子: 第一步:打开VC6.0,创建一个基于对话框的MFC应用程序. 第二步:在BOOL CHookDlg::OnInitDialog()函数上面编写如下代码:(注意是在上面编写,不是在OnInitDialog()里面) HHOOK g

HOOK API (一)——HOOK基础+一个鼠标钩子实例

HOOK API (一)——HOOK基础+一个鼠标钩子实例 0x00 起因 最近在做毕业设计,有一个功能是需要实现对剪切板的监控和进程的防终止保护.原本想从内核层实现,但没有头绪.最后决定从调用层入手,即采用HOOK API的技术来挂钩相应的API,从而实现预期的功能.在这样的需求下,就开始学习了HOOK API. 0x01什么是HOOK API HOOK(钩子,挂钩)是一种实现Windows平台下类似于中断的机制[24].HOOK机制允许应用程序拦截并处理Windows消息或指定事件,当指定的

用Delphi实现Windows的鼠标钩子函数

Delphi是基于PASCAL语言的Windows编程工具,功能十分强大.然而在Delphi的帮助文件中,对Windows API函数的说明沿袭了 VC 的格式,和VC一样,对很多API函数的用法没有举例子详细说明,对一些深入系统内部的API函数更是语焉不详,给编程者带来不便.笔者仅就在Windows编程中鼠标钩子函数(HOOK)的实现,举例作一说明.   鼠标钩子函数也可叫做鼠标消息过滤器,是一种回调(CALLBACK)函数,归系统调用.如果用SetWindowsHook或SetWindows

钩子编程(HOOK) 屏蔽全部按键、鼠标及系统功能键 (4)

摘要:上篇文章<钩子编程(HOOK) 安装系统全局钩子>已经具体的解说了全局钩子的安装.本文将增强一下钩子的功能.实现屏蔽全部按键鼠标与系统功能键.要实现这个功能.须要安装两个全局钩子,"鼠标钩子" 与 "低级键盘钩子".鼠标钩子--实现屏蔽全部鼠标点击操作.低级键盘钩子--实现屏蔽全部键盘操作,包括屏蔽功能键(ALT+F4.WIN.ALT+TAB.ALT+ESC,CTRL+ESC....).注意:不包括CTRL+ALT+DEL功能键. 本文不会具体介绍

钩子编程(HOOK) 屏蔽所有按键鼠标及系统功能键

作者 : 卿笃军 上篇文章已经详细的讲解了全局钩子的安装,下面我们增强一下钩子的功能,实现屏蔽所有按键鼠标与系统功能键. 要实现这个功能,我们需要安装两个全局钩子,"鼠标钩子" 与 "低级键盘钩子". 鼠标钩子:实现屏蔽所有鼠标点击操作. 低级键盘钩子:实现屏蔽所有键盘操作,包括屏蔽功能键(Alt+F4,Win,Alt+Tab, Alt+Esc,Ctrl+Esc....)注意:不包括Ctrl+Alt+Del功能键. 下面开始安装全局钩子. 第一步:打开VC6.0新建

钩子编程(HOOK) 安装系统全局钩子

MySQL使用的是插件式存储引擎. 主要包括存储引擎有:MyISAM,Innodb,NDB Cluster,Maria,Falcon,Memory,Archive,Merge,Federated. 其中最为广泛的是MyISAM 和Innodb两种存储引擎,所以接下来对它们做简单介绍. MyISAM 存储引擎简介 MyISAM 存储引擎的表存储在数据库中,每一个表都被存放为三个以表名命名的物理文件. 1.(.frm文件)任何存储引擎都不可缺少的存放表结构定义信息的文件 2.(.MYD文件)存放表数

钩子编程(HOOK) 留后门与钩子卸载

作者 : 卿笃军 问题由来:一般编写钩子程序,我们希望程序一方面能屏蔽键盘鼠标消息,但又希望程序能留有一个"后门",例如,按下F2退出程序. 下面示例,钩子后门设计与钩子卸载: 第一步:打开VC6.0创建一个基于对话框的MFC应用程序. 第二步:在BOOL CHookDlg::OnInitDialog()函数上面编写如下代码,注意不是OnInitDialog()里面: HWND g_hWnd = NULL; //窗口句柄 HHOOK g_hKeyboard = NULL; //钩子句柄

VC6 鼠标钩子 最简单样例

Windows系统是建立在事件驱动的机制上的,说穿了就是整个系统都是通过消息的传递来实现的.而钩子是Windows系统中非常重要的系统接口,用它能够截获并处理送给其它应用程序的消息,来完毕普通应用程序难以实现的功能.钩子能够监视系统或进程中的各种事件消息,截获发往目标窗体的消息并进行处理.这样,我们就能够在系统中安装自己定义的钩子,监视系统中特定事件的发生,完毕特定的功能,比方截获键盘.鼠标的输入,屏幕取词,日志监视等等.可见,利用钩子能够实现很多特殊而实用的功能.因此,对于高级编程人员来说,掌