各位,请问钩子是怎么运行的啊?请先看看我写的代码:
Public hhook
Private Sub Command1_Click()
hhook = SetWindowsHookEx(2, AddressOf testhook, 0, App.ThreadID)
End Sub
以下的是放在模块内的代码:
Public 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
Public Declare Function UnhookWindowsHookEx Lib "user32" (ByVal hhook As Long) As Long
Public Function testhook(ByVal nCode As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
MsgBox "运行到我了"
End Function
运行以上代码后,我只按了一下键盘,为什么会弹出2个对话框?当关闭第一个的时候 还会弹出一个,那样就一共弹出了3个“运行到我了”这是怎么回事?这个钩子是怎么运行的啊? 还有那个当我把以上代码msgbox "运行到我了" 换成msgbox ncode & wParam & lParam 的时候 为什么出现的是78,"310001",“-------”这种格式的字符呢? 怎么不是我键盘的按键字符呢?那要怎么转化成键盘上的字符?请各位指点一下
由于我刚学习这钩子,所以很多都不知道 ,也百度不到。希望大家帮帮我,原谅我问些基础问题。谢谢
Public hhook
Private Sub Command1_Click()
hhook = SetWindowsHookEx(2, AddressOf testhook, 0, App.ThreadID)
End Sub
以下的是放在模块内的代码:
Public 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
Public Declare Function UnhookWindowsHookEx Lib "user32" (ByVal hhook As Long) As Long
Public Function testhook(ByVal nCode As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
MsgBox "运行到我了"
End Function
运行以上代码后,我只按了一下键盘,为什么会弹出2个对话框?当关闭第一个的时候 还会弹出一个,那样就一共弹出了3个“运行到我了”这是怎么回事?这个钩子是怎么运行的啊? 还有那个当我把以上代码msgbox "运行到我了" 换成msgbox ncode & wParam & lParam 的时候 为什么出现的是78,"310001",“-------”这种格式的字符呢? 怎么不是我键盘的按键字符呢?那要怎么转化成键盘上的字符?请各位指点一下
由于我刚学习这钩子,所以很多都不知道 ,也百度不到。希望大家帮帮我,原谅我问些基础问题。谢谢
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货