VB.NET窗体钩子具体实现方法介绍

开发 后端
最近编写了一个VB.NET窗体钩子的程序。从这一程序代码的编写过程中,我们可以体会到VB.NET语言中不一样的地方。

VB.NET作为一款功能比较强大的开发平台,我们可以通过这一编程语言实现许多功能需求。那么首先就先来从一个简单的实现范例来详细解读这款语言给我们带来的好处。编写VB.NET窗体钩子程序的几点启发:#t#

1.在vb.net中long 要该定义为Integer类型

2.在vb.net中Rect要改定义为Rectangle类型,并用byref来引用

3.如何使用委托,如下面这个例子

(1)定义委托函数

  1. Public Delegate Function HOOKPROC
    (ByVal nCode As Integer, ByVal 
    wParam As Integer, ByVal lParam 
    As Integer) As Integer 

(2)定义在API的函数原型中使用委托函数来作为一个变量类型

  1. Private Declare Function SetWindowLong 
    Lib "user32" Alias "SetWindowLongA" 
    (ByVal hwnd As Integer, ByVal nIndex 
    As Integer, ByVal dwNewLong As 
    HOOKPROCA) As Integer 

(3)实现具体的函数功能

  1. Public Function myPROC(ByVal nCode As 
    Integer, ByVal wParam As Integer, 
    ByVal lParam As Integer) As Integer  
  2. `这中间是具体的实现代码  
  3. `这中间是具体的实现代码  
  4. `这中间是具体的实现代码  
  5. `这中间是具体的实现代码  
  6. end function  
  7. ()`通过API函数来调用委托函数  
  8. SetWindowLong(wParam, GWL_WNDPROC, 
    AddressOf myPROC) 

4.启示API函数申明可以重载如下例:

  1. Private Declare Function SetWindowLong 
    Lib "user32" Alias "SetWindowLongA" 
    (ByVal hwnd As Integer, ByVal nIndex 
    As Integer, ByVal dwNewLong As 
    HOOKPROCA) As Integer  
  2. Public Declare Function SetWindowLong 
    Lib "user32" Alias "SetWindowLongA" 
    (ByVal hwnd As Integer, ByVal nIndex 
    As Integer, ByVal dwNewLong As Integer) 
    As Integer 

以上是编写程序时要注意的几点

责任编辑:曹凯 来源: 博客园
相关推荐

2010-01-21 17:48:25

VB.NET Sing

2010-01-15 18:12:28

VB.NET超链接

2010-01-15 19:17:23

2009-11-10 15:07:11

VB.NET窗体

2010-01-15 10:56:50

VB.NET继承实现多

2010-01-07 15:25:11

VB.NET数组

2010-01-22 10:41:33

VB.NET声明结构

2009-11-10 12:42:47

VB.NET Prin

2010-01-21 13:34:56

VB.NET删除文件夹

2010-01-12 10:40:58

VB.NET数据库压缩

2010-01-15 15:26:46

VB.NET自定义类型

2010-01-21 14:27:46

VB.NET判断数组维

2009-10-16 09:35:24

VB.NET制作透明窗

2009-10-14 13:56:05

VB.NET数据窗体

2010-01-13 09:31:39

VB.NET窗体打印

2009-11-03 18:05:00

VB.NET窗体标题栏

2010-01-18 09:55:30

VB.NET删除空白行

2009-10-14 15:20:21

VB.NET窗体指针

2009-10-14 15:34:29

VB.NET窗体编程模

2009-10-09 16:54:03

VB.NET窗体
点赞
收藏

51CTO技术栈公众号