关于VB编程中钩子代码?

PublichHookasLongPrivateSubForm_Load()′程序启动时安装钩子hHook=SetWindowsHookEx(2,AddressofMyK... Public hHook as Long
Private Sub Form_Load()′程序启动时安装钩子
hHook=SetWindowsHookEx(2,Address of MyKBHook,0,App.ThreadID)
End Sub
′具体的钩子程序,本例中该过程被包含在Module1中
Public Function MyKBHook(ByVal nCode As Long,ByVal wParam As Long,ByVal lParam As Long)As Long
If nCode>=0 then
Open "C:\Keyfile.txt" For Append As #1 '将键盘的操作记录在Keyfile.txt文件之中
'记录所操作的键、操作时间、日期操作时的按键状态,用16进制记录
Write #1,wParam,Hex(lParam),Date,time
Close #1
MyKBHook=0 '表示要处理这个消息
'屏蔽ALT+F4组合键
if wParam=115 And(lParam And&H20000000)<>0 Then
if(lParam And &HC000000)=0 Then '是否进行ALT+F4操作
MyHBHook=1 '钩子吃掉这个消息
End if
End if
End if
Call CallNextHookEx(hHook,nCode,wParam,lParam)'将消息传给下一个钩子
End Function
'程序退出时卸载钩子
Private Sub Form_Unload(Cancel As Interger)
Call Unhook WindowsHookEx(hHook)
End Sub
我复制别人的到我VB中运行出错
其中hHook=SetWindowsHookEx(2,Address of MyKBHook,0,App.ThreadID)
Call Unhook WindowsHookEx(hHook)
这两段代码变为红色为什么会这样啊?

还有hHook=SetWindowsHookEx(2,Address of MyKBHook,0,App.ThreadID)这段代码的of也出错,说是缺少分号.谁能不能帮我改对这段代码啊?
展开
 我来答
oaita
2008-01-31 · TA获得超过708个赞
知道小有建树答主
回答量:669
采纳率:100%
帮助的人:805万
展开全部
最上面添加两个api声明
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

另外

Address of 改为Addressof
Call Unhook WindowsHookEx(hHook) 改为Call UnhookWindowsHookEx(hHook)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式