少儿智力开发大师V2.0 是免费软件,但只能使用每种功能的1分钟,1分钟过后,窗口就自动关闭了.经用spyXX发现,其使用了WM_TIMER计时器消息,
思路:让其计时器停止工作.
通过系统钩子:WM_GETMESSAGE
#define DllExport __declspec(dllexport)
DllExport LRESULT CALLBACK GetMsgProc (int nCode,WPARAM wParam, LPARAM lParam )
{
if( nCode < 0)
return CallNextHookEx(oldGetmessageHook,nCode,wParam,lParam);
MSG* pMsg = (MSG*)lParam;
if(pMsg->message == WM_TIMER)
{
char className[256];
::GetClassName(pMsg->hwnd,className,256);
CString sClassName(className);
sClassName.MakeLower();
CString sCompare = ("TPUtilWindow");//处理计时器消息的窗口类名就是这个
sCompare.MakeLower();
if(sClassName.Find(sCompare) != -1)
{
pMsg->message = WM_NULL;
return 1;
}
if(rect.Width() == 800 && rect.Height() == 600)
{
return 1;
AfxMessageBox("abc");
int a = 0;
}
}
return CallNextHookEx(oldGetmessageHook,nCode,wParam,lParam);