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 ......
1. 在VB的Form设计时,加入一个picturebox控件,这个控件作为OLE容器,MapInfo中的地图将在该控件上显示。
2. 执行VB的函数Createobject(“MapInfo.Application”),启动MapInfo。这时MapInfo在后台启动,对用户来说不可见,不会弹出sp ......
程序效果:
当点击左边的部件图时,会弹出对话框提示你点击了哪一个区域。
程序思路:
用一个图片区域码图作为点击区域的参照,根据XY取得的颜色识别出属于哪一个区域
程序界面如下:
相关代码如下:
Visual Basic Code
Dim ColorArray ( ) As Long
Dim ColorCount As Long
Private Sub Form_Load ( ......
上午:
VB总结:
下图是用mindmanager制作的VB总结mdb:
常用控件的分类:
属性和过程:
方法和过程
事件过程、Function过程和过程:
VB总结大图:
分歧如下:
数据包括:数据类型、变量、常量、运算符、表达式等几部分,而流程控制语句应不应该加入其中。
我感觉不应该,用“冰块模子&rdquo ......