何为Hook?(15分)

  • 主题发起人 主题发起人 xzs
  • 开始时间 开始时间
X

xzs

Unregistered / Unconfirmed
GUEST, unregistred user!
1、何为钩子函数?其作用是什么?何时需要该函数?能否举例说明!
 
呵呵!
钩子函数嘛,又点类似于热键激活吧
只不过并非全键盘响应,比如还有windows钩子等等。
象那个可以自动关闭广告窗口的应用程序吧,就用了windows钩子
一些即时翻译软件也用了相应的钩子函数。
 
xzs:
这种问题是先看看书,然后有什么不懂的再问比较好!
 
比较容易理解的方法就是,钩子函数是钩在系统中的一个模块,可以在某些特定的事件发生时获得消息。
 
"钩子函数是钩在系统中的一个模块,可以在某些特定的事件发生时获得消息。"
这是何意,请举例说明。
 
我原来一直使用vc编程,只是用VC编过钩子函数.应该都一样吧!
所谓钩子函数,顾名思义,就是一个过滤器.Windows程序都是基于
消息机制的.而钩子函数提供了应用程序一个手段,可以截获消息队列中的
消息,在消息还没有发往指定的窗口之前,进行处理.钩子函数有很多个.
有些钩子函数式系统级的.有些即可以是系统级的,也可以实现线程级的.
我做过一个远程遥控的程序,就是用钩子函数实现的.
 
tiger007说得似乎知道了,是否能在通俗点,比如边举例边说明如何?
 
其实钩子函数就是一个当满足了某个特定条件后,系统就会通知应用程序的回调函
数.不知道你是否理解回调函数,所谓回调函数就是DLL可以调用其他应用程序或另一个
DLL的函数.
所以钩子函数也是回调函数.就是系统的DLL中定义了各种钩子函数发生的条件,
以及满足了这些条件后,所要调用的函数名.(也就是所谓的PlaceHolder,占位符).
真正的函数名要求应用程序在安装钩子函数是指定.

具体来讲,举个例子!
象MouseProc钩子函数,就是截获某个指定的窗口或所有窗口的鼠标输入消息.当
有鼠标输入消息时就会激发MouseProc.象金山词霸的屏幕抓词想毕就是用了这个技
术.
还有JournalRecordProc钩子函数,就是把发往所有窗口的鼠标和键盘的输入消
息纪录下来,然后可以使用JournalPlaybackProc钩子函数将这些消息再回放出来.这
两个钩子函数都是系统级的.在所有的钩子函数中只有三个是系统级的.另一个就是
SysMsgProc.

就讲这么多了,其他的详细介绍你可以查阅VC的联机帮助.
 
多人接受答案了。
 
后退
顶部