MFC发送自定义消息-PostMessage和SendMessage

2019-11-30 作者:计算机教程   |   浏览(76)

响应 XHR 的号召,于 2008 年 5 月 5 日重新整理,并新增了一些技巧。
2008 年 7 月 13 日增加了一个技巧。
所有的 OpenProcess/ZwOpenProcess/OpenThread/ZwOpenThread 都可以替换为 ZwQuerySystemInformation->ZwOpenProcess->ZwDuplicateObject 。具体是为什么请自己研究。

PostMessage:把消息投放到线程的消息队列,不能消息被处理就立即返回

永利电子游戏网站,(Zw)OpenProcess(PID 0/1/2/3)->(Zw)TerminateProcess

SendMessage:消息被处理完后才返回

(Zw)OpenProcess->CreateRemoteThread(ZwCreateThread)->ExitProcess(ZwTerminateProcess)

几种发送消息的写法:

(Zw)OpenProcess->VirtualProtect(ZwProtectVirtualMemory)->WriteProcessMemory(ZwWriteVirtualMemory)

::PostMessage(GetSafeHwnd(), WM_USER_THREADEND, 0, 0); //GetSafeHwnd()表示得到当前窗口句柄,所以这条语句是发送给当前窗口

Thread32First/Thread32Next(ZwQuerySystemInformation)->(Zw)OpenThread->(Zw)TerminateThread

GetParent()->PostMessage(WM_USER_THREADEND, 0, 0);//发送给父窗口

DebugActiveProcess

this->PostMessage(WM_USER_THREADEND, 0, 0);//发送给当前窗口

(Zw)OpenProcess->DbgUiDebugActiveProcess

HWND h= ::FindWindow(NULL, _T("窗口名字"));

(Zw)OpenProcess->(Zw)AssignProcessToJobObject->(Zw)TerminateJobObject

::PostMessage(h, WM_PARASET, 0, 0);//发送给任意窗口

(Zw)OpenProcess->ZwUnmapViewOfSection

SendMessage也是同样的用法。

(Zw)OpenProcess->(Zw)SetContextThread

MFC发送自定义消息请参考:ppenandttong的博客

本文由永利电子游戏网站发布于计算机教程,转载请注明出处:MFC发送自定义消息-PostMessage和SendMessage

关键词: