求大神帮忙看下这样写的钩子是不是有问题

阿两sama 阿两sama 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
LRESULT CALLBACK ShellHookProc(int nCode,WPARAM wParam,LPARAM lParam)
{
if (nCode>=0)// Windows Created
{
HWND hLastWins =FindWindow("#32770","询问");
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(hLastWinss!=NULL)
{
if (isMatch1!=NULL||isMatch2!=NULL)
{
HWND hLastWin = FindWindowEx(hLastWins, 0,
"Button", "是(&Y)");
EnableWindow(hLastWin, false);
}
}

/*EnumWindows(EnumWindowsProc,0); */
}

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();
}

我这么写的可是不能实现找到相印的控件并禁用掉他,因为同一个程序中有很多名称相同的这个控件所以我先进行了判断,不判断是可以实现,但是所有的控件都被禁了,我只是想禁用掉特定的
...全文

相关推荐

评论 5
收藏 已收藏
分享
返回顶部
阿两sama
C++ 语言 65,214 成员 250,514 内容