独占鼠标消息,怎么做(救命啊!!!!!!)

ztuan 2002-04-07 01:03:47
我直接说我的任务吧:
屏幕图形捕获,有一个功能就是选择要捕获的窗口,当开始选择时,要控制鼠标的所有输入,就是锁定整个屏幕上的所有窗口,不让其他窗口接受消息,这样我才能在用户按下
鼠标左键的时候不会引起其它窗口的响应(比如不会弹出开始菜单)

我尝试用全局鼠标钩子,但鼠标钩子并不能阻止鼠标消息向下传递,不管是否调用
CallNextHook(),我甚至把消息的内容都改过(如目标窗口)但消息还是向下传递

我试验的例子是这样的:一个全局鼠标钩子,截获所有鼠标输入,运行时候我把鼠标指针
移到开始菜单上点击,开始菜单应该没有反应,但我无法有实现

请高手帮我想想办法,不胜感激。
...全文
172 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
idoloveyou 2002-04-07
  • 打赏
  • 举报
回复
对不起,说错了,应该返回TRUE
idoloveyou 2002-04-07
  • 打赏
  • 举报
回复
全局钩子应该是可以的呀,如果是Win2000,建议用WH_MOUSE_LL
注意返回值,应该返回FALSE
uaiia 2002-04-07
  • 打赏
  • 举报
回复
鼠标钩子可以完成你的要求,这样的代码我做过
你不要调用CallNextHook,再返回值改成TRUE试试,可以了把:)
azuo_lee 2002-04-07
  • 打赏
  • 举报
回复
1。
LRESULT CALLBACK MouseProc(int nCode, WPARAM wParam, LPARAM)
{
if (wParam == WM_RBUTTONCLICK)
MessageBox(NULL, TEXT("Right button clicked"), TEXT("MouseProc"), MB_OK);
//...
}
鼠标移动到别的窗口上点击右键,看是否有消息框弹出,如果有,说明注入成功。

2。在Win16中,调用SetCapture后可以得到所有的鼠标消息。但在Win32中,SetCapture只对本进程创建的窗口有效,对其他进程的窗口无效:即一旦鼠标移到了其他进程的窗口,你依然收不到鼠标消息。但有一个特例,即按住鼠标键不放时,对所有系统的窗口都有效。换句话说,假如你在WM_LBUTTONDOWN时调用SetCapture,然后按住鼠标左键移动到其他窗口上,那么即使窗口是别的进程的,你的窗口依然可以收到WM_MOUSEMOVE和WM_LBUTTONUP消息。这样在WM_LBUTTONUP时你就可以得到鼠标所在的窗口句柄。使用这种方法可以避免使用SetWindowsHookEx。Spy++用的正是这种方法。
NowCan 2002-04-07
  • 打赏
  • 举报
回复
鼠标钩子不能截断消息,用消息钩子可以截断消息。
Fnoopy 2002-04-07
  • 打赏
  • 举报
回复
像spy++那样在自己的窗口里点一下不放,然后到其他窗口释放可以吗?
ztuan 2002-04-07
  • 打赏
  • 举报
回复
1.如何测试?
2.好像不行,我试验过了
3.SetCapture更不行

有没有这方面的例子啊
azuo_lee 2002-04-07
  • 打赏
  • 举报
回复
1。确信你的MouseProc成功的注入了所有进程,这可以通过MessageBox测试;
2。你的MouseProc不要调用CallNextHook,而是直接返回0;
3。使用变通的方法,例如SetCapture,就像Spy++获取窗口的做法一样。
Qiushen 2002-04-07
  • 打赏
  • 举报
回复
在你的程序里不要再外传信息
stoneyrh 2002-04-07
  • 打赏
  • 举报
回复
setcapture

16,472

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

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