VC中利用SetWindowsHookEx钩子函数阻止弹出窗口如何实现?
不知道我表达的是否清楚,就是,利用钩子监视某个窗口,当我点击窗口的确定按钮时会弹出错误提示框,我能在这个错误提示框显示之前,或得它的信息并且销毁它吗,也就是达到点击确定按...
不知道我表达的是否清楚,就是,利用钩子监视某个窗口,当我点击窗口的确定按钮时会弹出错误提示框,我能在这个错误提示框显示之前,或得它的信息并且销毁它吗,也就是达到点击确定按钮没有任何反应的效果,但是我确得到了错误提示框的信息,可以实现这样的效果吗,麻烦高人指点下!
展开
1个回答
展开全部
你获取窗口HWND以后,用
GetWindowThreadProcessId
获取窗口所在进程与线程ID,再用
SetWindowsHookEx
Hook那个线程的WH_CALLWNDPROC消息,在那个线程对消息处理之前进入你定义的
LRESULT CALLBACK CallWndProc(
int nCode,
WPARAM wParam,
LPARAM lParam
);
lParam是一个指向
typedef struct {
LPARAM lParam;
WPARAM wParam;
UINT message;
HWND hwnd;
} CWPSTRUCT, *PCWPSTRUCT;
的指针
这样你分析lParam指向的结构体的值,就能分析得到是否是发给你要截获的那个按钮的单击消息了。
GetWindowThreadProcessId
获取窗口所在进程与线程ID,再用
SetWindowsHookEx
Hook那个线程的WH_CALLWNDPROC消息,在那个线程对消息处理之前进入你定义的
LRESULT CALLBACK CallWndProc(
int nCode,
WPARAM wParam,
LPARAM lParam
);
lParam是一个指向
typedef struct {
LPARAM lParam;
WPARAM wParam;
UINT message;
HWND hwnd;
} CWPSTRUCT, *PCWPSTRUCT;
的指针
这样你分析lParam指向的结构体的值,就能分析得到是否是发给你要截获的那个按钮的单击消息了。
追问
有点不太明白,可以再说的详细一点吗,谢谢了
追答
如果你熟悉一点按钮控件的单击消息和
SetWindowsHookEx
那理解我说的应该没问题。
但是如果你是两个都不了解,我也不知道怎么详细了。
要不你先网上看看如何实现全局钩子以及SetWindowsHookEx可以安装哪些钩子。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询