c 语言鼠标钩子,线程钩子(鼠标钩子) | C/C++程序员之家

c 语言鼠标钩子,线程钩子(鼠标钩子) | C/C++程序员之家最近再看一些关于Hook方面的知识,这是一个线程钩子的实例(来源互联网):步骤:一、新建一个不使用文档/视结构的单文档应用hook1。打开childview.cpp文件,加入全局变量:[cpp]HHOOKhHook;//鼠标钩子句柄CPointpoint;//鼠标位置信息CChildView*pView;//鼠标钩子函数用到的输出窗口指针[/cpp]二、在CChildView::OnPai…

最近再看一些关于Hook方面的知识,这是一个线程钩子的实例(来源互联网):

步骤:

一、新建一个不使用文档/视结构的单文档应用hook1。打开childview.cpp文件,加入全局变量:

[cpp]HHOOK hHook;//鼠标钩子句柄

CPoint point;//鼠标位置信息

CChildView *pView;//鼠标钩子函数用到的输出窗口指针 [/cpp]

二、在CChildView::OnPaint()添加如下代码:

[cpp]CPaintDC dc(this); // 用于绘制的设备上下文

CString str;

str.Format(_T(“x=%d,y=%d by:cplusplus.me”),point.x,point.y);

dc.TextOut(200,200,str); //显示字符串[/cpp]

三、在childview.cpp文件中定义全局的鼠标钩子函数。

[cpp]LRESULT CALLBACK MouseProc(int nCode, WPARAM wParam, LPARAM lParam)

{//是鼠标移动消息

if(wParam==WM_MOUSEMOVE||wParam

==WM_NCMOUSEMOVE)

{

point=((MOUSEHOOKSTRUCT *)lParam)->pt;

//取鼠标信息

pView->Invalidate(); //窗口重画

}

return CallNextHookEx(hHook,nCode,wParam,lParam);

//传递钩子信息

}

[/cpp]

四、CChildView类的构造函数中安装钩子。

[cpp]pView=this;//获得输出窗口指针

hHook=SetWindowsHookEx(WH_MOUSE,MouseProc,0,GetCurrentThreadId()); [/cpp]

五、CChildView类的析构函数中卸载钩子。

[cpp]if(hHook)

UnhookWindowsHookEx(hHook); [/cpp]

运行结果:

01390f059c2058572c0b7691d4bd93cc.png

hook1

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/35065.html

(0)
编程小号编程小号

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注