-
-
[求助]郁闷
-
发表于:
2011-7-3 17:19
5676
-
我遇到一个很奇怪的问题
一个窗口,是个
不可视窗口,没有自己的窗口过程,只有它的类(static类)的默认窗口过程,这种窗口居然能处理自定义消息~ 这是其中的代码
WM_USER = 0x400 ,它这里获取和派发的都是 0x5D3 == WM_USER + 0x1D3
我换了两个spy++,它窗口过程都是NULL
求解释吖~
PS:为了避免对号入座,我把标题擦了,见谅哈
mov edx, [esi+0F8h]
mov ecx, 6
xor eax, eax
lea edi, [esp+0A8h+WSAData.szSystemStatus+3Bh]
mov dword ptr [esp+0A8h+WSAData.szSystemStatus+37h], ebx
push 1 ; wRemoveMsg
rep stosd
mov edi, ds:PeekMessageA
push 5D3h ; wMsgFilterMax
push 5D3h ; wMsgFilterMin
lea eax, [esp+0B4h+WSAData.szSystemStatus+37h]
push edx ; hWnd
push eax ; lpMsg
call edi ; PeekMessageA
test eax, eax
jz short loc_1027550F ;消息队列为空则跳,否则循环抽空消息队列
mov ebx, ds:TranslateMessage
mov ebp, ds:DispatchMessageA
loc_102754DD:
lea ecx, [esp+0A8h+WSAData.szSystemStatus+37h]
push ecx ; lpMsg
call ebx ; TranslateMessage
lea edx, [esp+0A8h+WSAData.szSystemStatus+37h]
push edx ; lpMsg
call ebp ; DispatchMessageA
mov eax, [esi+0F8h]
push 1 ; wRemoveMsg
push 5D3h ; wMsgFilterMax
push 5D3h ; wMsgFilterMin
lea ecx, [esp+0B4h+WSAData.szSystemStatus+37h]
push eax ; hWnd
push ecx ; lpMsg
call edi ; PeekMessageA
test eax, eax
jnz short loc_102754DD ;循环
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课