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

有哪些Hook能够修改param值,如用WH_GETMESSAGE,怎么修改其系统接收到的param值

楼主gzssqx(萧声醉罢谁为听)2001-08-15 09:22:42 在 Delphi / VCL组件开发及应用 提问

如我用WH_GETMESSAGE接收一个键盘信号,如'p',如何将其转换为'a',此时用户如敲入  
  'p',系统将其转换为'a'输出.  
  用if   lParam=Ord('a')   then   lParam=Ord('a');不行,应该怎么做?多谢 问题点数:87、回复次数:24Top

1 楼gzssqx(萧声醉罢谁为听)回复于 2001-08-15 09:24:45 得分 0

请指教Top

2 楼gzssqx(萧声醉罢谁为听)回复于 2001-08-15 09:32:11 得分 0

请各位指教一下,关注的兄弟请帮忙提一下Top

3 楼gzssqx(萧声醉罢谁为听)回复于 2001-08-15 09:45:53 得分 0

这个问题这么难吗?斑竹及BCB等大虾有没有看到,谁帮忙提一下,加5分Top

4 楼wsdyqyj(蓝调)回复于 2001-08-15 09:58:34 得分 5

 
  关注一下  
  Top

5 楼reno7422(语言)回复于 2001-08-15 10:08:49 得分 5

值得讨论Top

6 楼gzssqx(萧声醉罢谁为听)回复于 2001-08-15 10:12:51 得分 0

多谢楼上二位的关注,请高手指教,先谢谢了  
  Top

7 楼gzssqx(萧声醉罢谁为听)回复于 2001-08-15 10:22:13 得分 0

 
  再次请高手指教!!!!!!!!!!!!  
  Top

8 楼Kingron(单身走我路……)回复于 2001-08-15 10:25:04 得分 15

HOOK没有写代码,不过有另外一个方法:注册一个系统热键,然后用Keybd_event模拟按键即可。  
  以前有过代码的,可惜csdn没有发布最新的离线数据,不然用全文搜索一下子就找到了。Top

9 楼sundayboys(sunboy)回复于 2001-08-15 10:25:32 得分 5

upTop

10 楼gzssqx(萧声醉罢谁为听)回复于 2001-08-15 10:34:27 得分 0

我看到一篇文章,上面源码是VC,在WH_GETMESSAGE   Hook中lParam是一个消息结构,该源码利用修改结构中的lParam想达到了修改Hook   lparam的目的,我用Delphi却不能成功Top

11 楼gzssqx(萧声醉罢谁为听)回复于 2001-08-15 10:35:46 得分 0

另外lParam是个结构参数,我怎么能访问到其中的成员呢?Top

12 楼gzssqx(萧声醉罢谁为听)回复于 2001-08-15 12:14:59 得分 0

UpTop

13 楼wsdyqyj(蓝调)回复于 2001-08-15 12:26:01 得分 5

再次强烈关注Top

14 楼gzssqx(萧声醉罢谁为听)回复于 2001-08-15 12:47:04 得分 0

对于这个问题各位Delphi大虾难道用的是回放Hook或发送消息的方式,  
  哪位对消息理解的深刻一点,发表一下吧?等你很久了,  
  请-----------------------------------------------------------------------------Top

15 楼dancemaple(枫之舞)回复于 2001-08-15 13:07:17 得分 5

gzTop

16 楼gzssqx(萧声醉罢谁为听)回复于 2001-08-15 17:58:59 得分 0

UpTop

17 楼lanren_me(阿波)回复于 2001-08-15 18:07:29 得分 5

gzTop

18 楼gzssqx(萧声醉罢谁为听)回复于 2001-08-15 19:57:17 得分 0

UpTop

19 楼gzssqx(萧声醉罢谁为听)回复于 2001-08-16 14:22:40 得分 0

明天结账Top

20 楼Bowdom(小高)回复于 2001-08-16 17:35:02 得分 15

我这是vc的代码,可以实现按了"n"后出现"j"  
  LRESULT   CALLBACK   GetMsgProc(  
      int   code,               //   hook   code  
      WPARAM   wParam,     //   removal   flag  
      LPARAM   lParam       //   address   of   structure   with   message  
  )  
  {  
  MSG   msg   =   *(MSG   *)lParam;  
  switch   (msg.message)  
  {  
          case   WM_KEYDOWN:  
                  switch   (msg.wParam)  
                  {  
                          //   'n'   pressed  
                          case   0x4e:    
                          {  
                                    //chang   to   'j'   pressed   :)  
                  ::PostMessage(   msg.hwnd,   WM_KEYDOWN,   (WPARAM)0x4a,   0x240001   );  
                                    msg.message   =   WM_NULL;  
                          }  
                  }  
  }  
  }Top

21 楼sclzmbie(忘我)回复于 2001-08-17 21:36:44 得分 15

PostMessage(msg.hwnd,WM_KEYDOWN,(WPARAM)0x4a,lParam);  
      是个好方法。Top

22 楼wind315(风)回复于 2001-08-17 22:48:29 得分 7

也就是先拿掉KEYDOWN消息,再弄一个上去。行!  
  可惜迟了,能蹭点儿分?Top

23 楼Bowdom(小高)回复于 2001-08-18 11:44:34 得分 5

喂喂!该给点分了吧   阿拉还没有得过分呢   555~~~  
  Top

24 楼gzssqx(萧声醉罢谁为听)回复于 2001-08-19 09:23:44 得分 0

还是没有一个说到点子上,结账Top

相关问题

  • 问一个API hook的菜鸟问题,为什么设置钩子的时候一定要用WH_GETMESSAGE?
  • 难道用HOOK钩WH_GETMESSAGE只能获取一般消息(WM_KEYDOWN),不能获取WM_CLOSE吗?
  • 请问在WH_GETMESSAGE HOOK 的 GetMsgProc里面怎么得到当前Focus的Window的Handle
  • WH_GETMESSAGE钩子的问题[SDK]
  • 为什么WH_GETMESSAGE截不了消息?
  • 一挂WH_GETMESSAGE就死机,why?
  • 还是没解决问题:关于WH_GETMESSAGE的钩子函数
  • WH_GETMESSAGE 为什么无法取得线程内「所有消息」?
  • HOOK
  • HOOK

关键词

  • 修改
  • 系统
  • 代码
  • 消息
  • 结构
  • x4
  • lparam
  • wh
  • hook
  • getmessage

得分解答快速导航

  • 帖主:gzssqx
  • wsdyqyj
  • reno7422
  • Kingron
  • sundayboys
  • wsdyqyj
  • dancemaple
  • lanren_me
  • Bowdom
  • sclzmbie
  • wind315
  • Bowdom

相关链接

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

广告也精彩

反馈

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