![]() |
#2
yuccn2013-05-08 11:24
|
代码如下:

LRESULT CALLBACK ShellHookProc(int nCode,WPARAM wParam,LPARAM lParam)
{
if (nCode>=0)// Windows Created
{
const int MyMaxParentWinCount = 2;
// 父窗口类名数组
char *A_szClassName[MyMaxParentWinCount] =
{
"#32770","Button"
};
// 父窗口标题数组
char *A_szWinName[MyMaxParentWinCount] =
{
"询问","是(&Y)"
};
// 首先求得顶级父窗口
HWND hLastWins =FindWindow(A_szClassName[0], A_szWinName[0]);
HWND hLastWinss = FindWindowEx(hLastWins, 0,
"Static", NULL);
char title[200];
GetWindowText(hLastWinss, title, 200);//在这里死机
char *t=title;
char *pattern="小于成本";
char *patter="小于最低销售价";
char *isMatch1= strstr(t,pattern);
char *isMatch2= strstr(t,patter);
if(title!=NULL)
{
if (isMatch1!=NULL||isMatch2!=NULL)
{
/*MessageBox((HWND)isMatch1,NULL,NULL,NULL);*/
// 逐次用FindWindowEx函数求出各级子窗口
for(int i=1; i<MyMaxParentWinCount; i++)
{
hLastWins = FindWindowEx(hLastWins, 0,
"Button", "是(&Y)");
}
EnableWindow(hLastWins, false);
}
}
}
return CallNextHookEx(g_hHookShell,nCode,wParam,lParam);
}
BOOL CQJHook1::SetHook()
{
g_hHookShell = SetWindowsHookEx(WH_CALLWNDPROC, ShellHookProc,glhInstance,0);
return g_hHookShell ? TRUE : FALSE;
}
BOOL CQJHook1::DestroyHook()
{
if (g_hHookShell == NULL)
{
return FALSE;
}
UnhookWindowsHookEx(g_hHookShell);
return TRUE;
}
CQJHook1::CQJHook1() //类构造函数
{
}
CQJHook1::~CQJHook1()
{
DestroyHook();
}
{
if (nCode>=0)// Windows Created
{
const int MyMaxParentWinCount = 2;
// 父窗口类名数组
char *A_szClassName[MyMaxParentWinCount] =
{
"#32770","Button"
};
// 父窗口标题数组
char *A_szWinName[MyMaxParentWinCount] =
{
"询问","是(&Y)"
};
// 首先求得顶级父窗口
HWND hLastWins =FindWindow(A_szClassName[0], A_szWinName[0]);
HWND hLastWinss = FindWindowEx(hLastWins, 0,
"Static", NULL);
char title[200];
GetWindowText(hLastWinss, title, 200);//在这里死机
char *t=title;
char *pattern="小于成本";
char *patter="小于最低销售价";
char *isMatch1= strstr(t,pattern);
char *isMatch2= strstr(t,patter);
if(title!=NULL)
{
if (isMatch1!=NULL||isMatch2!=NULL)
{
/*MessageBox((HWND)isMatch1,NULL,NULL,NULL);*/
// 逐次用FindWindowEx函数求出各级子窗口
for(int i=1; i<MyMaxParentWinCount; i++)
{
hLastWins = FindWindowEx(hLastWins, 0,
"Button", "是(&Y)");
}
EnableWindow(hLastWins, false);
}
}
}
return CallNextHookEx(g_hHookShell,nCode,wParam,lParam);
}
BOOL CQJHook1::SetHook()
{
g_hHookShell = SetWindowsHookEx(WH_CALLWNDPROC, ShellHookProc,glhInstance,0);
return g_hHookShell ? TRUE : FALSE;
}
BOOL CQJHook1::DestroyHook()
{
if (g_hHookShell == NULL)
{
return FALSE;
}
UnhookWindowsHookEx(g_hHookShell);
return TRUE;
}
CQJHook1::CQJHook1() //类构造函数
{
}
CQJHook1::~CQJHook1()
{
DestroyHook();
}