CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
山寨机中的战斗机! 程序优化工程师到底对IT界有没有贡献
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Delphi >  Windows SDK/API

如何屏蔽鼠标按键

楼主uncarman()2002-11-20 21:27:28 在 Delphi / Windows SDK/API 提问

在应用程序中如何屏蔽鼠标按键,用delphi实现,请高手指点 问题点数:100、回复次数:10Top

1 楼vickeen(庆哥)回复于 2002-11-20 21:55:53 得分 20

比较简单的办法是,响应Delphi的OnMouseDown事件,其定义如下:    
  type    
      TMouseEvent   =   procedure   (Sender:   TObject;   Button:   TMouseButton;        
          Shift:   TShiftState;   X,   Y:   Integer)   of   object;    
  property   OnMouseDown:   TMouseEvent;    
  而TMouseButton的定义是这样的:    
  type   TMouseButton   =   (mbLeft,   mbRight,   mbMiddle);    
  当探测到TMouseButton为mbRight,不执行任何语句,既可。    
  其实这种方法还可以屏蔽鼠标左键和中键,详细情况见Delphi的帮助Top

2 楼vickeen(庆哥)回复于 2002-11-20 21:56:59 得分 30

用钩子Hook,可能挂接wh_getmessage钩子比较好。    
  Top

3 楼vickeen(庆哥)回复于 2002-11-20 22:01:16 得分 0

不过鼠标的Hook好象比较难。  
  Top

4 楼stanely(俺是邢她汉子)回复于 2002-11-21 00:48:16 得分 30

在鼠标钩子响应函数里面让result:=-1就可以!最有效!  
   
  hhk:=setwindowshookex(wh_mouse,@hookproc,hinstance,0);  
   
  这句执行的地方如果在dll里就是操作系统的鼠标钩子,让所有的鼠标点击都失效,如果在exe里面,只是本进程内鼠标点击失效。  
   
  function   hookproc(ncode:smallint;wparam,lparam:integer):integer;  
  begin  
      result:=-1;  
      if   ncode<0   then  
          result:=callnexthookex(hhk,ncode,wparam,lparam);  
  end;Top

5 楼uncarman()回复于 2002-11-21 14:55:06 得分 0

我要单单屏蔽鼠标右键,而不是所有按键。  
  必须用鼠标钩子实现,请指点。Top

6 楼stanely(俺是邢她汉子)回复于 2002-11-21 16:05:48 得分 20

屏蔽右键也简单,  
  function   hookproc(ncode:smallint;wparam,lparam:integer):integer;  
  begin  
      if   wparam=$0204   then//按了右键。  
          result:=-1  
      else  
          result:=0;  
      if   ncode<0   then  
          result:=callnexthookex(hhk,ncode,wparam,lparam);  
  end;  
   
  Top

7 楼uncarman()回复于 2002-11-22 09:57:22 得分 0

stanely,你好,用了你的方法在win2000下无法屏蔽鼠标按键,是否是键盘虚拟码(wparam这个参数值不对),请解答。Top

8 楼Fzgta(蝈蝈)回复于 2002-11-26 18:05:43 得分 0

UPTop

9 楼uncarman()回复于 2002-11-28 16:27:08 得分 0

加到100,请高手相助Top

10 楼uncarman()回复于 2002-12-01 20:00:28 得分 0

我用另外一种钩子类型搞定了。尽管你们没有回答准确,我还是非常感谢,散分!Top

相关问题

  • 屏蔽鼠标按键
  • 如何屏蔽PrintScreen按键?
  • 如何屏蔽掉鼠标???
  • 屏蔽按键……
  • 如何屏蔽鼠标右键?
  • 如何屏蔽鼠标右键?
  • 如何屏蔽flash的鼠标右键
  • 请问如何屏蔽鼠标右键
  • 如何屏蔽鼠标滚轮事件
  • 如何屏蔽鼠标右键?

关键词

  • 鼠标
  • 屏蔽
  • delphi
  • 钩子
  • tmousebutton
  • integer

得分解答快速导航

  • 帖主:uncarman
  • vickeen
  • vickeen
  • stanely
  • stanely

相关链接

  • Delphi类图书
  • Delphi类源码下载
  • Delphi控件下载

广告也精彩

反馈

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