当前位置:首页>>网络编程>>Delphi教程>>正文

使用HOOK随心监视Windows

文章出处:网络转载 作者:未知 发布时间:2006-07-28 收藏到QQ书签
 

每个程序都有自己的生存空间,在Windows系统中你可以在任何时候让你的程序执行一些操作,还可以触发消息,触发的消息分为三种,一是操作你程序的界面,onClick,onMouseMove等等,另外一个可以使用Windows的消息机制来捕获一些系统消息,但是如果你想在任何时候监控任何程序的情况那可能你就会选择HOOK来实现了,虽然还有其他方法,但不得不承认,HOOK是一个比较简单解决问题的途径。

Windows提供了Hook机制,定义为
A callback function provided by an application that receives certain data before the normal recipient of the data. The hook function can thus examine or modify the data before passing it on.

可以使用诸多Hook的方式,一下列举一些常用的参数,这些在WINDWOS API帮助中都有:

CALLWNDPROC ,CALLWNDPROCRET :
The WH_CALLWNDPROC and WH_CALLWNDPROCRET hooks enable you to monitor messages sent to window procedures by the SendMessage function. Windows calls a WH_CALLWNDPROC hook procedure before passing the message to the receiving window procedure, and calls the WH_CALLWNDPROCRET hook procedure after the window procedure has processed the message.

CBT:

Windows calls a WH_CBT hook procedure before activating, creating, destroying, minimizing, maximizing, moving, or sizing a window; before completing a system command; before removing a mouse or keyboard event from the system message queue; before setting the input focus; or before synchronizing with the system message queue. The value the hook procedure returns determines whether Windows allows or prevents one of these operations. The WH_CBT hook is intended primarily for computer-based training (CBT) applications.

Google