键盘钩子Hook中转换消息的问题

roger_xiong 2005-01-06 09:05:56

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

'*************************************************************

上面是从网上获得的VB线程钩子(LocalHook)的例子,上面的例子是把捕获的消息吃掉,网上找了很多关于钩子的例子和资料几乎都是关于如何吃掉被捕获的消息的。

但是我现在的想法是把捕获的消息吃掉的同时转换成另一个消息发回去,例如,捕获的消息是 Enter ,我将它转换成 VbKeyF4 ,不用sendkeys的话,就是转换消息,有没有可能实现,如果可以实现的话,该怎么做呢?



...全文
172 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
qyii 2005-01-09
  • 打赏
  • 举报
回复
MyKBHook = CallNextHookEx(hHook, nCode, wParam, lParam) '将消息传给下一个钩子
roger_xiong 2005-01-07
  • 打赏
  • 举报
回复
试了试好像不行的说,可能是我自己没有操作好?继续试试,不过先谢谢楼上了。
tztz520 2005-01-06
  • 打赏
  • 举报
回复
主要改Call CallNextHookEx(hHook, nCode, wParam, lParam)就行了.


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 '钩子吃掉这个消息
Call CallNextHookEx(hHook, nCode, "你的消息", "你的消息")
exit function
End If
End If
End If
Call CallNextHookEx(hHook, nCode, wParam, lParam) '将消息传给下一个钩子
End Function
roger_xiong 2005-01-06
  • 打赏
  • 举报
回复
没有人回答吗?自己UP~

1,486

社区成员

发帖
与我相关
我的任务
社区描述
VB API
社区管理员
  • API
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧