拿FindWindow来做测试,先OD跟一下
FindWindowW里面其实又调用了USER32!InternalFindWindowExW,这个函数接收5个参数,第三个是类名,第四个是标题,其他参数不用管,跟进去看下
HWND hWnd=::FindWindow(_T("SciCalc"),_T("计算器"));
::SendMessage(hWnd,WM_CLOSE,NULL,NULL);
为了方便分析参数,给FindWindow也传递了类名。
OD载入,bp FindWindowW,运行后断下来,来到FindWindowW里面
77D2C9C5 55 PUSH EBP
77D2C9C6 8BEC MOV EBP,ESP
77D2C9C8 33C0 XOR EAX,EAX
77D2C9CA 50 PUSH EAX
77D2C9CB FF75 0C PUSH DWORD PTR SS:[EBP+C]
77D2C9CE FF75 08 PUSH DWORD PTR SS:[EBP+8]
77D2C9D1 50 PUSH EAX
77D2C9D2 50 PUSH EAX
77D2C9D3 E8 8AFFFFFF CALL USER32.77D2C962
77D2C9D8 5D POP EBP
77D2C9D9 C2 0800 RETN 8
FindWindowW里面其实又调用了USER32!InternalFindWindowExW,这个函数接收5个参数,第三个是类名,第四个是标题,其他参数不用管,跟进去看下