2 a552298242 a552298242 于 2016.01.30 16:05 提问

vb.net中的钩子是指的什么东西

今年刚学的vb.net,我看到要好多人都提到了钩子,请问下什么是钩子呢,他都能干什么呢,请各位专家指点下

3个回答

caozhy
caozhy   Ds   Rxr 2016.01.30 16:42
已采纳

简单来说,钩子(Hook)就是允许你在现有的系统中扩展你自己的处理代码。因为每个这样的处理程序在处理完自身后,又将控制权转移给下一个调用者,直至操作系统,很像钩子一样,顾名思义得到这个词。

最常用的钩子是windows中的键盘鼠标钩子和日志钩子,可以用来做键盘拦截和鼠标拦截,很多做网游外挂的人用它。

VB6时代还有一种技术,就是通过拦截windows消息,来改变窗口控件的一些行为。这个其实不叫钩子,而是叫窗口子类化(window subclassing)
但是VB.NET不需要这么做,因为你只要重写WndProc就可以了。

91program
91program   Ds   Rxr 2016.01.30 21:21

基本的解决问题的方案,Baidu/Bing 搜索引擎大法。
请 Baidu:钩子 HOOK

91program
91program 键盘与鼠标HOOK是最常用的,然后就是 API HOOK,这是对在调用系统 API 时的一直处理方法。
接近 2 年之前 回复
wojiushiwo945you
wojiushiwo945you   Ds   Rxr 2016.01.30 16:21

windows的应用程序都是基于消息驱动的,应用程序的操作都依赖于它所得到的消息的类型及内容。钩子与dos中断截获处理机制有类似之处。钩子(hook)是windows消息处理机制的一个平台,通过安装各种钩子,应用程序可以在上面设置子程序以监视指定窗口的某种消息,并且当消息到达目标窗口之前处理它。
参考文档:http://www.west.cn/www/info/23878-1.htm

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!