一个程序如何截获另外一个程序发送消息

一个程序如何截获另外一个程序发送消息,第1张

如果你要解决一个程序接收(非截获宽毁岩)另外一个程序发送的消息,可以如下步骤:

1、消息发送程序定慎御义消息

#define WM_COPYDATA 4004

2、消息发送程序寻找接收消息余指的窗体并发送消息

HWND hWnd = ::FindWindow("图元编辑", NULL)

if (hWnd)

{

::SendMessage(hWnd, WM_COPYDATA, 0, 0)

}//图元编辑 是接收消息的窗体的标题

3、消息接收程序定义消息(一定要和发送程序消息定义一致)

#define WM_COPYDATA 4004

4、设计消息接收函数进行处理

void OnRealDataReady(WPARAM wp,LPARAM lp)//声明

ON_MESSAGE(WM_COPYDATA,OnRealDataReady)//映射

下面是实现

描 述:接收到实时量数据准备好的消息

**************************************************************/

void CMainFrame::OnRealDataReady(WPARAM wp, LPARAM lp)

{

// MessageBox("接收到消息")

CMainFrame* pMainFrame = (CMainFrame*)AfxGetMainWnd()

CQuickTestView* pView = (CQuickTestView*)pMainFrame->GetActiveView()

if(bstarttest)

{

CString stip = gcfg.CLcsyl[tdpos-1].csname

stip.Format("测试用例“"+stip+"”--结束第%d次实时量调用",btimers)

pView->SetStatusBartext(stip)

}

else

{

pView->SetStatusBartext("非自动测试 -- 本次召唤实时量结束!")

}

pView->IniResult()

}

winAPI中提供了2个函数:

WriteProcessMemory

ReadProcessMemory

利用这两个函数,你就销氏可以读写其他程序的数据。

也可以制作一个dll,将dll注念伏入到需要读写数据的进程,dll就能亏高散直接读写进程数据了

别人的窗口当然只能下钩子了。消息是线程相关的,这个是WINDOWS编程的基本知识,大家都知道哦。

代码什么的就不说了。吵陆还是一步一个脚印慢慢学习吧,WINDOWS编程有很多基础知识要学的。开始的时候别胡思乱想,没这份能力,把所有的基础知识都打扎实升袭顷已经很牛了。然后才学着自己写程序!

spy++什么消息都能拦到,不是意味着我们也都可以做。如果你刚学了游戏编程,你是否还会问“我要做一个和魔兽差不多的好游戏呢?”

等有了较深的基础知识后,spy++的很多功能都能自己写程序实现,但可能不是现在就应该急着去研究禅粗。

多耐心,祝成功!


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12224924.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-22
下一篇 2023-05-22

发表评论

登录后才能评论

评论列表(0条)

保存