SendMessage字符串

gmyhbio 2011-01-28 12:32:00
先向目标程序A.EXE注入DLL,DLL::SetWindowsHookExA(WH_CALLWNDPROC,&GameMessage,FSKH,tID);

LRESULT CALLBACK GameMessage(int nCode, WPARAM wParam, LPARAM lParam)
{
if (nCode == HC_ACTION)
{
switch(((PCWPSTRUCT)lParam)->message)
{
case WM_CONN:
char Buf[MAX_PATH]={0};
sprintf(Buf,"aaaaaa [SendMessage]wParam=%X lParam=%X dd=%s",wParam,lParam,(char*)lParam);
OutputDebugString(Buf);
break;
}

}
return CallNextHookEx(0,nCode,wParam,lParam);
}



我想实现从一个VB程序SENDMESSAGE字符串到目标程序A,然后DLL会拦截SENDMESSAGE消息。
我要如何才能获得这个字符串?
...全文
167 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
Simao 2011-01-29
  • 打赏
  • 举报
回复
字符的话,要保证静态全局变量啊
case WM_CONN:
static char Buf[MAX_PATH]={0};
sprintf(Buf,"aaaaaa [SendMessage]wParam=%X lParam=%X dd=%s",wParam,lParam,(char*)lParam);
OutputDebugString(Buf);
renxu350 2011-01-28
  • 打赏
  • 举报
回复
微软会好人做到底,帮你把字符串COPY到目标进程
chzhn 2011-01-28
  • 打赏
  • 举报
回复
将字符串保存一个特定的内存地址,用SendMessage的时候将内存地址传送过去,接收端得到地址后用ReadProcessMemory读取这个进程的内存。
还在查 2011-01-28
  • 打赏
  • 举报
回复
2个进程间的通信你用WM_COPYDATA消息试试看
gmyhbio 2011-01-28
  • 打赏
  • 举报
回复
LRESULT CALLBACK GameMessage(int nCode, WPARAM wParam, LPARAM lParam)
{
if (((PCWPSTRUCT)lParam)->message == WM_COPYDATA)
{
CString CmdLine=(LPSTR)((PCOPYDATASTRUCT)lParam)->lpData;
//PCOPYDATASTRUCT lpcds = (PCOPYDATASTRUCT)lParam;
CmdCall(CmdLine);
}
return CallNextHookEx(0,nCode,wParam,lParam);
}

接收不到消息- -

15,471

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 进程/线程/DLL
社区管理员
  • 进程/线程/DLL社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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