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币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
hook函数教程(一)什么是钩子
原文地址:http://blog.csdn.net/g200407331/article/details/50982025 一、什么是钩子   我们可以首先从字面上了解钩子,钩子是干什么的呢?日常生活中,我们的钩子是用来钩住某种东西的,比如,说,鱼钩是用来钓鱼的,一旦鱼咬了钩,钩子就一直钩住鱼了,任凭鱼在水里怎么游,也逃不出鱼钩的控制。同样的,Windows的钩子Hook也
PHP中的钩子是什么?
PHP中的钩子是什么? 钩子是一种事件驱动的消息处理机制。 一个事件,可以看作一段完成某个目的的程序。比如查询一次数据库,或者访问某个网址等等。 事件驱动分为两个阶段,第一个阶段是注册事件,目的是给未来可能发生的“事件”起一个名字,简单的实现方法是用单例模式产生一个持久的对象或者注册一个全局变量,然后将事件名称,以及该事件对应的类与方法插入全局变量即可。也就是挂载一个钩子
VB 鼠标钩子实例
此程序演示了在VB中怎么使用鼠标钩子。程序会把按钮覆盖到“开始 ”按钮上,当你按这个按钮的时候会显示一个快捷菜单,并且这个菜单可以响应事件。frmMain.fmOption ExplicitPrivate Declare Function ShowWindow Lib "user32" (ByVal hwnd As Long, ByVal nCmdShow As Long) As Long
VB.Net远程控制编程实例[鼠标钩子、 键盘钩子]
功能描述:模拟鼠标事件的函数模型  设置光标到指定位置的函数模型 模拟键盘事件的函数模型命名空间:Lob.API转化后代码如下:    Imports System    Imports System.Runtime.InteropServices        Namespace Lob.API    Public Class Api                    
VB.NET全局键盘鼠标钩子
VB.NET全局键盘鼠标钩子,可以用,大家可以放心使用
VB HOOK(钩子)超级无敌详细用法(介绍)
转自  http://hi.baidu.com/ljl88900/home     hook是WINDOWS提供的一种消息处理机制,它使得程序员可以使用子过程来监视系统消息,并在消息到达目标过程前得到处理。       下面将介绍WINNDOWS HOOKS并且说明如何在WINDOWS 程序中使用它。 关于HOOKS       使用HOOK 将会降低系统效率,因为它增加了系统处量消
SetWindowsHookEx钩子详解
SetWindowsHookEx   钩子(Hook),是Windows消息处理机制的一个平台,应用程序可以在上面设置子程以监视指定窗口的某种消息,而且所监视的窗口可以是其他进程所创建的。当消息到达后,在目标窗口处理函数之前处理它。钩子机制允许应用程序截获处理window消息或特定事件。 钩子实际上是一个处理消息的程序段,通过系统调用,把它挂入系统。每当特定的消息发出,在没有到达
VB.NET全局键盘鼠标钩子 [Vb.Net Hook](修正版)
原版在这里: http://hi.baidu.com/clso/blog/item/ee9c70d9541053ec39012f32.html/cmtid/fbad5e66614bd42dab184cd3 原文有些BUG,因为这是段我从C#中转换而来的代码,所在最初的转换中因为两种语言的性质不同,所以无法完全兼容一些特性。 当然,现在的我已经完全有能力兼容两种语言的特性了,所以就重写了本段代
js中的钩子机制(hook)
什么是钩子机制?使用钩子机制有什么好处? 钩子机制也叫hook机制,或者你可以把它理解成一种匹配机制,就是我们在代码中设置一些钩子,然后程序执行时自动去匹配这些钩子;这样做的好处就是提高了程序的执行效率,减少了if else 的使用同事优化代码结构。由于js是单线程的编程语言,所以程序的运行效率在前端开发是比较重要的,在开发中我们秉承如果能用switch case 的地方就不要用if else
键盘钩子的类(VB.NET)
欢迎技术交流!Imports System.Reflection, System.Threading, System.ComponentModel, System.Runtime.InteropServices 本类可以在.NET环境下使用系统键盘与鼠标钩子Public Class SystemHook#Region "定义结构"    Private Structure