紧急求助:钩子消息如何返回给主程序?谢谢!

zfmich 2000-05-29 08:58:00
...全文
178 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
ploto 2000-06-10
  • 打赏
  • 举报
回复
仍旧用sendmessage, 但是该message的值应该用RegisterWindowMessage 函数来注册。例: (未测试过)
UINT UTestMsg=RegisterWindowMessage("this is only a test");
.....
SendMessage(hWnd,UTestMsg,0,0);

在主程序中的消息同样用该字符串进行注册即可:
UINT UTestMsg=RegisterWindowMessage("this is only a test");
再在DefaultHandler 函数中处理该消息
void __fastcall TForm1::DefaultHandler(void* msg)

{
TMessage* tmsg=(TMessage* )msg;
if(tmsg->Msg == UTestMsg)
{
......
}
}
nationphone 2000-06-10
  • 打赏
  • 举报
回复
你的钩子应该是写在一个单独的DLL中吧,这样你可以再输出一函数,比如SETWINDOWHND(HANDLE),主应用可以用这个函数来登记它的窗口名柄(可以是主应用中的任何控件的HANDLE),然后用SENDMESSAGE直接发消息给该窗口就行,我曾经试过用此法来显示一个截获的消息列表.
其它关于消息传送我同意ploto的叙述.
zfmich 2000-05-30
  • 打赏
  • 举报
回复
谢谢!能给个例子吗?
radish 2000-05-29
  • 打赏
  • 举报
回复
先找到程序ID(通过标题,类,特定变量识别),然后发MESSAGE

13,822

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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