VB.NET窗體鉤子具體實(shí)現(xiàn)方法介紹
VB.NET作為一款功能比較強(qiáng)大的開發(fā)平臺,我們可以通過這一編程語言實(shí)現(xiàn)許多功能需求。那么首先就先來從一個(gè)簡單的實(shí)現(xiàn)范例來詳細(xì)解讀這款語言給我們帶來的好處。編寫VB.NET窗體鉤子程序的幾點(diǎn)啟發(fā):#t#
1.在vb.net中l(wèi)ong 要該定義為Integer類型
2.在vb.net中Rect要改定義為Rectangle類型,并用byref來引用
3.如何使用委托,如下面這個(gè)例子
(1)定義委托函數(shù)
- Public Delegate Function HOOKPROC
(ByVal nCode As Integer, ByVal
wParam As Integer, ByVal lParam
As Integer) As Integer
(2)定義在API的函數(shù)原型中使用委托函數(shù)來作為一個(gè)變量類型
- Private Declare Function SetWindowLong
Lib "user32" Alias "SetWindowLongA"
(ByVal hwnd As Integer, ByVal nIndex
As Integer, ByVal dwNewLong As
HOOKPROCA) As Integer
(3)實(shí)現(xiàn)具體的函數(shù)功能
- Public Function myPROC(ByVal nCode As
Integer, ByVal wParam As Integer,
ByVal lParam As Integer) As Integer- `這中間是具體的實(shí)現(xiàn)代碼
- `這中間是具體的實(shí)現(xiàn)代碼
- `這中間是具體的實(shí)現(xiàn)代碼
- `這中間是具體的實(shí)現(xiàn)代碼
- end function
- ()`通過API函數(shù)來調(diào)用委托函數(shù)
- SetWindowLong(wParam, GWL_WNDPROC,
AddressOf myPROC)
4.啟示API函數(shù)申明可以重載如下例:
- 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
以上是編寫程序時(shí)要注意的幾點(diǎn)