C++ 关于钩子的知识点博客网上基本写的都非常详细,这里只是简单分享一下本人练手的编程步骤和一些简单认识。
钩子程序就大概分成了2种:
(1) 进程中的钩子:它 的作用范围只是限定在某个进程中,或者某个线程中。比如我们只想起一个MFC程序,截获在这个MFC程序界面中的所有鼠标,键盘操作。这属于进程中的钩子。
编写普通的进程中的钩子demo,可以直接建立一个小MFC工程就可以了。
(2) 全局的钩子:它的作用范围可以截获整个系统的操作。比如一个程序中开启了全局钩子,启动这个程序之后,就可以让整个电脑的鼠标、键盘不起作用。
编写全局钩子,我看了一下网上的说法都是 先编写一个dll,来提供设置钩子的方法接口,然后再建立一个新的测试程序,来加载这个dll,调用钩子接口
钩子程序大概流程:
【1】调用 SetWindowsHookEx 开启钩子;
eg1:我在MFC对话框中添加了一个按钮,点击按钮就会开启鼠标钩子。
//进程中的钩子---》开启鼠标钩子
void CMFChookTest1Dlg::OnBnClickedButton3()
{
// TODO: 在此添加控件通知处理程序代码
g_hMous