求大神帮忙看下这样写的钩子是不是有问题
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();
}我这么写的可是不能实现找到相印的控件并禁用掉他,因为同一个程序中有很多名称相同的这个控件所以我先进行了判断,不判断是可以实现,但是所有的控件都被禁了,我只是想禁用掉特定的
...全文
相关推荐
HideWindows_writeek3_枚举钩子_写钩子_Vc_
**写钩子(Writing Hooks)**:写钩子是指创建自定义的钩子函数,然后使用`SetWindowsHookEx` API将其安装到系统钩子链中。
监视注册表写操作的钩子
标题中的“监视注册表写操作的钩子”指的是在编程中使用的一种技术,它允许开发者监控和拦截对注册表的写入操作。注册表是Windows操作系统中的一个重要组件,存储着系统和应用程序的各种设置。
Java写游戏脚本钩子问题.docx
标题“Java写游戏脚本钩子问题.docx”暗示了一个关于使用Java进行游戏脚本开发时遇到的特定问题,可能是关于在游戏中实现钩子(hook)机制的问题。
C#写的系统钩子
然而,使用系统钩子需要谨慎,因为不恰当的使用可能会侵犯用户隐私,甚至可能导致安全问题。因此,开发者在实际应用中应确保遵循合法和道德的编程实践。
delphi 写的全局钩子
标题“delphi 写的全局钩子”指的是用Delphi语言编写的程序,它创建了一个全局钩子,用于监控并记录用户的键盘输入。


