VB.NET窗體鉤子具體實現方法介紹
作者:佚名
最近編寫了一個VB.NET窗體鉤子的程序。從這一程序代碼的編寫過程中,我們可以體會到VB.NET語言中不一樣的地方。
VB.NET作為一款功能比較強大的開發平臺,我們可以通過這一編程語言實現許多功能需求。那么首先就先來從一個簡單的實現范例來詳細解讀這款語言給我們帶來的好處。編寫VB.NET窗體鉤子程序的幾點啟發:#t#
1.在vb.net中long 要該定義為Integer類型
2.在vb.net中Rect要改定義為Rectangle類型,并用byref來引用
3.如何使用委托,如下面這個例子
(1)定義委托函數
- Public Delegate Function HOOKPROC
(ByVal nCode As Integer, ByVal
wParam As Integer, ByVal lParam
As Integer) As Integer
(2)定義在API的函數原型中使用委托函數來作為一個變量類型
- Private Declare Function SetWindowLong
Lib "user32" Alias "SetWindowLongA"
(ByVal hwnd As Integer, ByVal nIndex
As Integer, ByVal dwNewLong As
HOOKPROCA) As Integer
(3)實現具體的函數功能
- Public Function myPROC(ByVal nCode As
Integer, ByVal wParam As Integer,
ByVal lParam As Integer) As Integer- `這中間是具體的實現代碼
- `這中間是具體的實現代碼
- `這中間是具體的實現代碼
- `這中間是具體的實現代碼
- end function
- ()`通過API函數來調用委托函數
- SetWindowLong(wParam, GWL_WNDPROC,
AddressOf myPROC)
4.啟示API函數申明可以重載如下例:
- Private Declare Function SetWindowLong
Lib "user32" Alias "SetWindowLongA"
(ByVal hwnd As Integer, ByVal nIndex
As Integer, ByVal dwNewLong As
HOOKPROCA) As Integer- Public Declare Function SetWindowLong
Lib "user32" Alias "SetWindowLongA"
(ByVal hwnd As Integer, ByVal nIndex
As Integer, ByVal dwNewLong As Integer)
As Integer
以上是編寫程序時要注意的幾點
責任編輯:曹凱
來源:
博客園