网站导航免费论文 原创论文 论文搜索 原创论文 网学软件 学术大家 资料中心 会员中心 问题解答 原创论文 论文素材 设计下载 最新论文 下载排行 论文上传 在线投稿 联系我们
返回网学首页
网学联系
最新论文 推荐专题 热门论文 素材专题
当前位置: 网学 > 编程文档 > VC++ > 正文
在VC++ 6.0下应用Win32系统钩子技术
来源:Http://myeducs.cn 联系QQ:点击这里给我发消息 作者: 用户投稿 来源: 网络 发布时间: 12/10/15
下载{$ArticleTitle}原创论文样式
WND glhTargetWnd=pMouseHook->hwnd;  //取目标窗口句柄
HWND ParentWnd=glhTargetWnd;
while (ParentWnd !=NULL)
{
glhTargetWnd=ParentWnd;
ParentWnd=GetParent(glhTargetWnd); //取应用程序主窗口句柄
}
if(glhTargetWnd!=glhPrevTarWnd)
{
char szCaption[100];
GetWindowText(glhTargetWnd,szCaption,100); //取目标窗口标题
if(IsWindow(glhDisplayWnd))
SendMessage(glhDisplayWnd,WM_SETTEXT,0,(LPARAM)(LPCTSTR)szCaption);
glhPrevTarWnd=glhTargetWnd;   //保存目标窗口
}
}
return CallNextHookEx(glhHook,nCode,wparam,lparam); //继续传递消息
}
编译完成便可得到运行时所需的鼠标钩子的动态连接库MouseHook.dll和链接时用到的MouseHook.lib。
六、集成
下面新建一调用鼠标钩子动态连接库的钩子可执行程序
(一) 用MFC的AppWizard(EXE)创建项目MouseDemo;
(二) 选择"基于对话应用",其余几步均为确省;
(三) 在对话框上加入一个编辑框IDC_EDIT1;
(四) 在MouseDemo.h中加入对Mousehook.h的包含语句:#Include"Mousehook.h";
(五) 在CMouseDemoDlg.h的CMouseDemoDlg类定义中添加私有数据成员:CMouseHook m_hook;
(六) 在OnInitDialog函数的"TODO注释"后添加:
CWnd * pwnd=GetDlgItem(IDC_EDIT1);  //取得编辑框的类指针
m_hook.StartHook(pwnd->GetSafeHwnd()); //取得编辑框的窗口句柄并安装钩子
(七)链接DLL库,即把Mousehook.lib加入到项目设置链接标签中;
(八)把MouseHook.h和MouseHook.lib复制到MouseDemo工程目录中,MouseHook.dll复制到Debug目录下。编译执行程序即可。当鼠标滑过窗口时便会在编辑框中将此窗口的标题显示出来。
结论:
系统钩子具有相当强大的功能,通过这种技术可以对几乎所有的Windows
系统消息进行拦截、监视、处理。这种技术可以广泛应用于各种软件,尤其是需要
有监控、自动记录等对系统进行监测功能的软件。本程序只对鼠标消息进行拦截,
相应的也可以在Win32环境下对键盘、端口等应用此技术完成特定的功能。


摘自:计算机世界网

网学推荐

免费论文

原创论文

浏览:
设为首页 | 加入收藏 | 论文首页 | 论文专题 | 设计下载 | 网学软件 | 论文模板 | 论文资源 | 程序设计 | 关于网学 | 站内搜索 | 网学留言 | 友情链接 | 资料中心
版权所有 QQ:3710167 邮箱:3710167@qq.com 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
Copyright 2008-2015 myeducs.Cn www.myeducs.Cn All Rights Reserved
湘ICP备09003080号