我使用的是注入DLL,Hook桌面的WM_PAINT消息,但好像没有效果,下面是DLL的部分代码,请大家帮忙看看,先谢谢了!
LRESULT CALLBACK GetMsgProc( int nCode, WPARAM wParam, LPARAM lParam )
{
if (nCode < 0)
{
return CallNextHookEx (hDesktopHK, nCode, wParam, lParam);
}
else
{
CWPSTRUCT *p = (CWPSTRUCT *)lParam;
if (p)
{
if (p->hwnd == hDeskWnd)
{
if ( p->message == WM_PAINT)
{
p->message = WM_NULL;
return 0;
}
}
}
}
}
extern "C"
__declspec( dllexport ) void SetHook()
{
hDeskWnd = FindWindow( "Progman", NULL );
if( hDeskWnd ) hDeskWnd = FindWindowEx( hDeskWnd, NULL, "SHELLDLL_DefView", NULL );
if( hDeskWnd ) hDeskWnd = FindWindowEx( hDeskWnd, NULL, "Internet Explorer_Server", NULL );
DWORD dwThreadID, dwProcessID;
dwThreadID = GetWindowThreadProcessId(hDeskWnd,&dwProcessID);
hDesktopHK = SetWindowsHookEx(WH_GETMESSAGE,GetMsgProc,hDllModule,dwThreadID);
}