CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  VC/MFC >  基础类

为什么我设置的全局鼠标钩子只能截获当前进程的鼠标事件?

楼主littlebao(爱拼才会赢)2005-04-25 12:05:26 在 VC/MFC / 基础类 提问

 
  BOOL   CMouseHook::starthook()  
  //安装钩子并设定接收显示窗口句柄  
  {  
  BOOL     bResult=FALSE;  
  HWND     hWnd   =   FindWindow   (NULL   ,   "MYSoft   Record")   ;  
  DWORD   dwPID   ,   dwThreadID   ;  
  dwThreadID   =   GetWindowThreadProcessId   (hWnd   ,   &dwPID)   ;  
      //当如下设置时截获不了"MYSoft   Record"的鼠标事件,即使dwThreadID设为0也不行,如果为0只能截获当前进程的鼠标事件,而"MYSoft   Record"是我写的里面并没有钩子的操作.钩子已经放在dll里.  
  glhHook=SetWindowsHookEx(WH_MOUSE,MouseProc,glhInstance,dwThreadID);//  
         
  return   bResult;  
  } 问题点数:100、回复次数:11Top

1 楼zwzz541(木鱼)回复于 2005-04-25 12:21:43 得分 5

应该你的钩子设置的是当前线程的IDTop

2 楼littlebao(爱拼才会赢)回复于 2005-04-25 12:43:42 得分 0

线程ID不是当前的,即使设为0也不行啊.Top

3 楼potshot(山河)回复于 2005-04-25 13:07:34 得分 5

参考一下<Windows   核心编程>里的例程,  
  要   HOOK   所有进程要改写所有已经装载和即将装载的所有调用目标   API   的模块,jeffery   为我们写好了一个累在那个例子里,可以直接拿来用.Top

4 楼Fzergling(十二年的轮回)回复于 2005-04-25 13:28:36 得分 5

全局钩子要在DLL中Top

5 楼aspcom(牧野流星)回复于 2005-04-25 13:58:18 得分 5

#pragma   data_seg("ShareData")  
  HINSTANCE   glhInstance   =   NULL;  
  #pragma   data_seg()Top

6 楼littlebao(爱拼才会赢)回复于 2005-04-25 15:19:56 得分 0

已经在dll里了,也有一下代码了:  
  #pragma   data_seg("ShareData")  
  HINSTANCE   glhInstance   =   NULL;  
  #pragma   data_seg()  
  奇怪啊!!!!Top

7 楼wangk(倒之)回复于 2005-04-25 16:31:16 得分 5

SetWindowsHookEx(WH_MOUSE,MouseProc,glhInstance,0);//   0   代表所有线程Top

8 楼oyljerry(【勇敢的心】→ ㊣提拉米苏√㊣)回复于 2005-04-25 16:42:04 得分 10

SetWindowsHookEx(WH_MOUSE,MouseProc,glhInstance,0);  
  用0来表示全局Top

9 楼Fzergling(十二年的轮回)回复于 2005-04-25 16:49:16 得分 0

MFCDLL还是WIN32DLL?  
  glhInstance赋予模块值没有?Top

10 楼kugou123(酷狗)(彪悍的人生,不需要解释 www.xiaozhou.net)回复于 2005-04-25 18:14:34 得分 10

SetWindowsHookEx最后一个参数设置为0即可。  
  回调函数放在DLL里面。Top

11 楼quanbaoxiao(永不言败)回复于 2005-04-27 18:00:52 得分 55

放dll里Top

相关问题

  • 求一鼠标全局钩子
  • 鼠标钩子截获鼠标滚轴信息?
  • 请看看这个全局鼠标钩子DLL
  • 关于全局鼠标钩子的使用
  • 怎样在VB中才可以建立全局鼠标钩子
  • 求bcb键盘鼠标全局钩子的例子
  • 如何建立一个全局的鼠标钩子?
  • 还是全局鼠标钩子的问题
  • 关于 鼠标全局钩子,钩子正常安装后 有些鼠标消息钩不到,求解!!!!!!!
  • 我在dll里面写了鼠标的全局钩子,当截获到了右件信息,我如何有办法,去控制窗体上的memo添加一行信息。

关键词

  • 鼠标
  • dll
  • null
  • 钩子
  • glhinstance
  • 截获
  • 进程
  • dwthreadid
  • 鼠标事件
  • setwindowshookex

得分解答快速导航

  • 帖主:littlebao
  • zwzz541
  • potshot
  • Fzergling
  • aspcom
  • wangk
  • oyljerry
  • kugou123
  • quanbaoxiao

相关链接

  • Visual C++类图书
  • Visual C++类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo