有哪些Hook能够修改param值,如用WH_GETMESSAGE,怎么修改其系统接收到的param值
如我用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




