钩子除了鼠标键盘还能钩什么?

如题所述

一. 按事件分类,有如下的几种常用类型

(1) 键盘钩子和低级键盘钩子可以监视各种键盘消息。
(2) 鼠标钩子和低级鼠标钩子可以监视各种鼠标消息。
(3) 外壳钩子可以监视各种Shell事件消息。比如启动和关闭应用程序。
(4) 日志钩子可以记录从系统消息队列中取出的各种事件消息。
(5) 窗口过程钩子监视所有从系统消息队列发往目标窗口的消息。
此外,还有一些特定事件的钩子提供给我们使用,不一一列举。

参考资料:http://dev.21tx.com/2007/06/22/10917.html

温馨提示:内容为网友见解,仅供参考
第1个回答  2007-10-13
我们看下 MSDN

SetWindowsHookEx Function

--------------------------------------------------------------------------------

The SetWindowsHookEx function installs an application-defined hook procedure into a hook chain. You would install a hook procedure to monitor the system for certain types of events. These events are associated either with a specific thread or with all threads in the same desktop as the calling thread.

Syntax

HHOOK SetWindowsHookEx( int idHook,
HOOKPROC lpfn,
HINSTANCE hMod,
DWORD dwThreadId
);
Parameters

idHook
[in] Specifies the type of hook procedure to be installed. This parameter can be one of the following values.
WH_CALLWNDPROC
Installs a hook procedure that monitors messages before the system sends them to the destination window procedure. For more information, see the CallWndProc hook procedure.
WH_CALLWNDPROCRET
Installs a hook procedure that monitors messages after they have been processed by the destination window procedure. For more information, see the CallWndRetProc hook procedure.
WH_CBT
Installs a hook procedure that receives notifications useful to a computer-based training (CBT) application. For more information, see the CBTProc hook procedure.
WH_DEBUG
Installs a hook procedure useful for debugging other hook procedures. For more information, see the DebugProc hook procedure.
WH_FOREGROUNDIDLE
Installs a hook procedure that will be called when the application's foreground thread is about to become idle. This hook is useful for performing low priority tasks during idle time. For more information, see the ForegroundIdleProc hook procedure.
WH_GETMESSAGE
Installs a hook procedure that monitors messages posted to a message queue. For more information, see the GetMsgProc hook procedure.
WH_JOURNALPLAYBACK
Installs a hook procedure that posts messages previously recorded by a WH_JOURNALRECORD hook procedure. For more information, see the JournalPlaybackProc hook procedure.
WH_JOURNALRECORD
Installs a hook procedure that records input messages posted to the system message queue. This hook is useful for recording macros. For more information, see the JournalRecordProc hook procedure.
WH_KEYBOARD
Installs a hook procedure that monitors keystroke messages. For more information, see the KeyboardProc hook procedure.
WH_KEYBOARD_LL
Windows NT/2000/XP: Installs a hook procedure that monitors low-level keyboard input events. For more information, see the LowLevelKeyboardProc hook procedure.
WH_MOUSE
Installs a hook procedure that monitors mouse messages. For more information, see the MouseProc hook procedure.
WH_MOUSE_LL
Windows NT/2000/XP: Installs a hook procedure that monitors low-level mouse input events. For more information, see the LowLevelMouseProc hook procedure.
WH_MSGFILTER
Installs a hook procedure that monitors messages generated as a result of an input event in a dialog box, message box, menu, or scroll bar. For more information, see the MessageProc hook procedure.
WH_SHELL
Installs a hook procedure that receives notifications useful to shell applications. For more information, see the ShellProc hook procedure.
WH_SYSMSGFILTER
Installs a hook procedure that monitors messages generated as a result of an input event in a dialog box, message box, menu, or scroll bar. The hook procedure monitors these messages for all applications in the same desktop as the calling thread. For more information, see the SysMsgProc hook procedure.
lpfn
[in] Pointer to the hook procedure. If the dwThreadId parameter is zero or specifies the identifier of a thread created by a different process, the lpfn parameter must point to a hook procedure in a dynamic-link library (DLL). Otherwise, lpfn can point to a hook procedure in the code associated with the current process.
hMod
[in] Handle to the DLL containing the hook procedure pointed to by the lpfn parameter. The hMod parameter must be set to NULL if the dwThreadId parameter specifies a thread created by the current process and if the hook procedure is within the code associated with the current process.
dwThreadId
[in] Specifies the identifier of the thread with which the hook procedure is to be associated. If this parameter is zero, the hook procedure is associated with all existing threads running in the same desktop as the calling thread.

其中钩子类型很多,常用的除了键盘鼠标钩子还有回调函数的钩子,消息钩子等。

消息钩子比较常见的,一般有些人HOOK API或者线程插入的时候(即所谓的三级线程插入技术)都会用到消息钩子

参考资料:MSDN

钩子除了鼠标键盘还能钩什么?
(1) 键盘钩子和低级键盘钩子可以监视各种键盘消息。(2) 鼠标钩子和低级鼠标钩子可以监视各种鼠标消息。(3) 外壳钩子可以监视各种Shell事件消息。比如启动和关闭应用程序。(4) 日志钩子可以记录从系统消息队列中取出的各种事件消息。(5) 窗口过程钩子监视所有从系统消息队列发往目标窗口的消息。此外...

钩子程序钩子的分类
键盘钩子和低级键盘钩子:监视各种键盘消息。鼠标钩子和低级鼠标钩子:监视各种鼠标消息。外壳钩子:监视Shell事件消息,例如应用程序的启动和关闭。日志钩子:记录系统消息队列中的各种事件消息。窗口过程钩子:监视所有系统消息队列发往目标窗口的消息。此外,还有特定事件的钩子供使用,如网络事件、文件事件等。...

全局消息钩子的介绍
全局消息钩子在多个领域都有广泛的应用。在操作系统中,全局消息钩子可以用来捕获系统级的事件,如鼠标点击、键盘按键等。通过注册相应的钩子函数,开发者可以在这些事件发生时执行自定义的代码,从而实现对系统行为的定制。例如,在开发自定义的快捷键功能时,可以通过全局消息钩子捕获键盘按键事件,并在特定按...

钩子注入原理机制
钩子是Windows消息传递机制中的关键环节,通过安装不同类型的钩子,如键盘钩、鼠标钩、外壳钩和日志钩,应用程序可以拦截并处理系统中的消息,如键盘输入和鼠标动作。例如,键盘钩可以捕获键盘按键事件,鼠标钩则监控鼠标操作,而外壳钩则关注应用程序的启动和关闭,日志钩则记录输入活动。在DLL中,如果使用Se...

消息钩子的介绍
钩子是WINDOWS中消息处理机制的一个要点,通过安装各种钩子,应用程序能够设置相应的子例程来监视系统里的消息传递以及在这些消息到达目标窗口程序之前处理它们。 钩子的种类很多,每种钩子可以截获并处理相应的消息,如键盘钩子可以截获键盘消息,鼠标钩子可以截获鼠标消息,外壳钩子可以截获启动和关闭应用程序的...

hook编程(利用钩子实现程序控制)
Hook编程是指利用钩子技术来实现对程序的控制。钩子技术是一种Windows系统的高级编程技术,它可以截获并处理系统消息、键盘、鼠标等事件,从而实现对程序的控制。在Hook编程中,我们可以利用钩子技术来截获程序的消息,并对其进行处理。这样,我们就可以实现对程序的控制,比如监控程序的运行状态、控制程序的输入...

系统钩子什么是钩子
其实Windows系统是基于事件驱动机制的,消息的传递是其运行的核心。钩子在Windows系统中扮演着关键角色,它允许截取并处理发送给其他应用程序的消息,从而实现常规应用程序难以完成的功能。通过安装自定义的钩子,监视系统中的特定事件,可以实现如键盘、鼠标输入截获,屏幕取词,日志监控等特殊功能。因此,对高级...

钩子程序到底是什么?
钩子程序的实现方式依赖于具体的编程语言和框架。例如,在Windows系统中,钩子程序通常通过调用系统提供的钩子函数(Hook Function)来实现。开发者可以编写一个钩子函数,并将其注册到系统中。当特定事件(如鼠标点击或键盘按键)发生时,系统会调用相应的钩子函数,执行其中的自定义代码。钩子程序的应用场景...

泰拉瑞亚抓钩种类大全
骷髅王Skeletron14.28%几率掉落,两根勾爪。抓住一分钟后会自动松开。放到快捷栏,利用鼠标键盘一起点可能产生三条勾爪。双钩爪 宝箱怪14.29%掉落,虽然有两条勾爪,但双勾爪一次只能有一条勾爪固定住,一旦另一条射出并固定,前一条就会自动脱落。可以快速射出两只勾爪。常春藤鞭 25格距离,三根勾...

为何钩子编程具有如此大的杀伤力,让我们又爱又恨
在创建钩子过程中,我们关注的是钩子过程。这是一个回调函数,负责处理钩子截取的消息。函数形参包含关键信息,如消息代码、参数和附加信息,开发者需根据具体钩子类型解析这些参数以进行消息处理。例如,鼠标钩子过程函数包含光标位置、目标窗口句柄等信息,而键盘钩子过程函数则包含虚拟键代码和按键状态等细节。

相似回答