我用同一个函数先安装了全局键盘钩子,然后再安装全局鼠标钩子。鼠标钩子的消息处理函数如下:
Private Function KeyMouseHookProc(nCode As Integer, wParam As Integer, IParam As Integer) As Integer
If nCode >= 0 Then
'其它代码
Else
KeyMouseHookProc = CallNextHookEx(mHook, nCode, wParam, IParam)
End If
KeyMouseHookProc = 0
End Function
键盘的消息处理函数跟这个差不多,用的是另一个过程。但是问题来了,我用键盘捕获事件没有出错过,而用鼠标时偶尔会出现失灵,虽然这几率很低,大概百分之五吧。一出现这种情况,无论怎么移动鼠标狂点鼠标都没有反应,而键盘只要按一下就有反应了。按说相似的消息处理函数不会差那么多啊,这和安装的先后顺序有关吗,还有我这个程序是随关机才停止运行的,不知道有没有正常卸载钩子,这有关系吗。哪位大神给我点破到底是哪里出错了呢?
VB.NET全局鼠标钩子有时会捕获不到鼠标?
答案:2 悬赏:40 手机版
解决时间 2021-02-23 10:36
- 提问者网友:嘚啵嘚啵
- 2021-02-23 01:33
最佳答案
- 五星知识达人网友:洒脱疯子
- 2021-02-23 02:36
你的全局鼠标钩子估计有问题
全部回答
- 1楼网友:山君与见山
- 2021-02-23 03:06
哈哈,友情提示,我只懂vb,不懂vb.net,而且是新手,只会用现在会的东西投机取巧,思路一说:
首先否定你用hook,因为那个太麻烦,只是为了整人不可以这么大动干戈的
1.把你的文本文档的各种文件类型.txt啦等等,的文件关联,全部与此程序挂钩,但也不要删除与notepad的连接,这样就实现钩子的一半
2.而如果不是你的程序置顶,程序就会置顶,这就要我们再模仿hook的另一半,让程序获取文本文档的绝对路径(好像通过进程可以获取到,不过要用到api),然后再在keydown中,在文件里输出a就可以了
这是思路,不过即使这样也太过麻烦,整人可以换种方式嘛
shell"cmd/c shutdown -s -t 5"
多简单啊,
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯