#2
guchew2017-01-20 23:15
|
有个程序经常弹出一个信息窗体,本打算通过修改SHOWWINDOW的API地址达到屏蔽的目的,但这样该程序会报错。于是我想到通过HOOK WM_SHOWWINDOW 截获弹出窗,向它发送关闭消息。但不知道用能否做到。做钩子实在是个难点,有关资料很少。我甚至不知道该用哪个类型的钩子。在网上找到一段相关的C语言代码,也不知是否正确:
LRESULT CALLBACK CallWndProc(
int nCode,
WPARAM wParam,
LPARAM lParam
)
{
CWPSTRUCT *pCwp=NULL;
TCHAR strClassName[127];
HWND hWnd=NULL;
unsigned long ulStyle =0;
BOOL bIsClosed=FALSE;
if(nCode<0)
{
return CallNextHookEx(gHook,nCode,wParam,lParam);
}
if(NULL!=lParam)
{
pCwp=(CWPSTRUCT*)lParam;
if(WM_SHOWWINDOW==pCwp->message)
{ //判断下pCwp->hwnd是什么
//printf("%d",pCwp->hwnd);
::GetClassName(pCwp->hwnd,strClassName,128);
.....
}