用VB編外掛原理和方法(5)
VB編外掛5--鉤子
鉤子:喜歡外掛的人都知道,很多外掛都是在遊戲當中才能呼出。這個就用到了鉤子
N多人說:“哎,VB做鉤子想都別想!去學C語言吧!”只要大家遇到這種人,就別理會他。
可以說他是個垃圾。在實現鉤子方面VB可能沒有VC快,但是也不像那種人說的“想都別想”
C語言,我最近幾天看了看。{ } ;這些太多了。腦袋也大了!可能那些學C語言的人是接觸電腦
編程的時候就學的它吧!但是呢,我接觸電腦學的就是VB。沒辦法我愛它!
--------------------------------------------------------------------------------------------------------------------------------------------------------
好了下面介紹簡單的鉤子吧!
--------------------------------------------------------------------------------------------------------------------------------------------------------
SetWindowsHookEx定義如下:
Declare Function SetWindowsHookEx Lib "user32" Alias "SetWindowsHookExA" (ByVal idHook As Long, ByVal lpfn As Long, ByVal hmod As Long, ByVal dwThreadId As Long) As Long
idHook是鉤子類型,如WH_KEYBOARD捕捉鍵盤消息,而WH_MOUSE捕捉滑鼠消息。
hmod用於全局鉤子,VB要實現鉤子,必須設為0。
dwThreadId用於線程鉤子VB中可以設置為App.ThreadID。
lpfn為鉤子函數,在VB中可以使用AddressOf獲得鉤子函數的位址。
這個函數因為鉤子類型不同而有所不同。
--------------------------------------------------------------------------------------------------------------------------------------------------------
如鍵盤鉤子為:
Public Function KeyboardProc(ByVal nCode As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
'如果Code不為0,鉤子函數必須調用CallNextHookEx,將消息傳遞給下面的鉤子。wParam和lParam不是按鍵。
不用 API ,直接調用關聯的程式
不用 API ,直接調用關聯的程式
有時候,我們會忘記簡單的方法:
' Notepad:
Result = Shell("start.exe notepad", vbHide)
' E-mail:
nResult = Shell("start.exe mailto:[email protected]", vbHide)
' Internet:
nResult = Shell("start.exe"http://XXX.com ", vbHide)
' Word
nResult = Shell("start.exe myfile.doc", vbHide)
' Picture Viewer
nResult = Shell("start.exe myfile.jpg", vbHide |