一直在用VC++做项目,乐趣无穷,但一直没有什么可以发出来的东西,很多东西拿出来怕被行家笑话,其实这个也不例外…不过之所以把这个贴出来是因为实在找了半天我想用的鼠标钩子就是没找到合适的代码,大家的代码都隐藏的太深了,于是贴出来以后再找源代码的各位弟兄就能快些搜索到了。(不知道能不能排在第一页?)
这个是在codeproject.com里面的一个猫的眼睛随鼠标转动一个程序里的小钩子,我稍微改了一点。
下载:MouseHook_dc9cn.rar
使用简单介绍:
原来他就是检测鼠标位置,我增加了监视右键弹起,左键双击,我觉得够了,不够自己加吧。
1,首先启动工程,编译出MouseHook.dll,MouseHook.lib,把这两个文件和MouseHook.h拷贝到你要用的工程下
2,把上面三个添加进你的工程
3,在你对话框xxxDlg.cpp里面加入
#include “MouseHook.h”
static UINT UWM_MOUSEMOVE = ::RegisterWindowMessage(UWM_MOUSEMOVE_MSG);
4,把这个加入到头文件的protect里面
afx_msg LRESULT OnMyMouseMove(WPARAM,LPARAM);
5,在你对话框xxxDlg.cpp里面的MESSAGE_MAP里面增加以下代码
ON_REGISTERED_MESSAGE(UWM_MOUSEMOVE, OnMyMouseMove)
在OninitialDlg里面加入
BOOL result = setMyHook(m_hWnd);
if(!result) clearMyHook(m_hWnd);
在ondestroy里面加入
clearMyHook(m_hWnd);
6,在你对话框xxxDlg.cpp里面加入
LRESULT CMpegCapDlg::OnMyMouseMove(WPARAM wParam, LPARAM lParam)
{
switch (wParam)
{
case 1:
AfxMessageBox(_T("右键"));
return 0;
break;
case 2:
AfxMessageBox(_T("左键2"));
return 0;
break;
}
return 0;
}
刚写完发现网上有一篇类似的文章-_-||
土了土了。不过这篇文章和代码有更详细地介绍和更丰富的功能,也算是廖表自慰了。
这两天在想一个问题,开发一个新的聚合是用C#.net还是用VC++呢?
我想屏蔽系统的右键功能,不是监视,该杂办?
不错!
怎么调试OnMyMouseMove的时候wParam是对的,但是lParam总是为0呢?该如何传递这个鼠标坐标的值?
I just want to mention I’m newbie to blogging and truly loved this page. More than likely I’m likely to bookmark your site . You certainly come with beneficial well written articles. Regards for revealing your blog.
What’s Going down i am new to this, I stumbled upon this I’ve found It absolutely useful and it has aided me out loads. I’m hoping to contribute & aid other users like its aided me. Great job.