VB截获Windows消息的钩子
本文引自。感谢原创!http://useway.blog.51cto.com/736087/176913
VB无所不能之三:VB截获Windows消息的钩子
——作者:钟声
博客地址:http://useway.blog.51cto.com
VB一直被认为是一个可以通过简单的方法,完成Windows界面应用程序的一个语言。对Windows系统方面的编程似乎首先想到的绝对不是VB,而大部分程序员想到的一定是VC。我们今天就介绍一种用VB截获Windows全局消息的方法。
一、Windows全局消息介绍
我不喜欢用非常晦涩的语言来介绍一个简单的事物,因此,我想在本篇文章中就用通俗的语言来解释这个概念吧。
什么是Windows全局消息呢?
例如:鼠标在自定义的窗口中移动的位置,我们可以通过这个Form中的相关方法获取,然而,如果鼠标并没有在自己的Form中移动又该怎么获得其位置呢?
再例如:键盘的敲击动作,在别的地方敲击键盘,并没有在自己的Form中敲击键盘,怎么才能获得按键的具体键值呢?
对单片机有了解的朋友都知道,鼠标和键盘的操作都是利用的是“中断”触发事件来完成的,那么当系统“中断”的时候,就会发出消息给操作系统,而这些消息就是Windows全局消息。
二、钩子简介
钩子是通过英文Hook翻译过来的,所谓的钩子就是在Windows全局消息传递到操作系统之前进行截获,经过处理后再传递给操作系统或者其他钩子的程序。
想想看,钩子听起来像什么程序?
对没错,黑客程序,木马程序,都是通过钩子的方法获取鼠标键盘的相应操作信息,还获取密码或其他有用信息的。
但是,钩子其本身并不是病毒,而是提供给我们程序员一种获取操作系统动作的一个方法,这个方法有时候非常有用,可以非常方便的开发针对操作系统的优质程序。
三、消息种类
1、WH_CALLWNDPROC和WH_CALLWNDPROCRET
这两种消息是发送到窗口过程的消息,系统在消息发送到接收窗口过程之前调用WH_CALLWNDPROC,并且在窗口过程处理完消息之后调用WH_CALLWNDPRO 。
2、WH_CBT
它是激
相关文档:
Sub CheckTextCodingType(Textfile)
Set fl = aqFile.OpenBinaryFile(Textfile, aqFile.faRead)
Binary1 = fl.ReadByte()
Binary2 = fl.ReadByte()
fl.Close
select case CStr(Binary1)& CStr(Binary2)
case 255254: '*Unicode (UTF-16) 前两个字节为FFFE
Log.Message("fi ......
Dim strPath As String = Server.MapPath("~\文件夹")
'判断保存文件路径是否存在 不存在则创建
If Not Directory.Exists(strPath) Then
Directory ......
Asp.net连接SQL Server2000数据库例程详解:
<%@ Import Namespace="System.Data" %>
<%@ Import NameSpace="System.Data.SqlClient" %>
<script laguage="VB" runat="server">
sub page_load(sender as Object ......
1、大道至简
米老师先呈现了一个函数的图像,然后问问大家想到了什么。
看到这张图,我先发现这是一个周期函数,再往深了就感觉自己应该不会了,寄希望于书信的几个同学,感觉应该是高数里的东西。但事实证明是初中的知识:
他是以下三个函数的复合函数:
y=sin(x)+sin(2x)+sin(3x)
& ......