热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

HOOKAPI入门篇(六)

10)编译项目生成mousehook.dll。2.创建钩子可执行程序(1)用MFC的AppWizard(EXE)创建项目Mouse;(2)选择“基于对话应用”并按下“完

10)编译项目生成mousehook.dll。

  2.创建钩子可执行程序

  (1)用MFC的AppWizard(EXE)创建项目Mouse;

  (2)选择“基于对话应用”并按下“完成”键;

  (3)编辑对话框,删除其中原有的两个按钮,加入静态文本框和编辑框,用鼠标右键点击静态文本框,在弹出的菜单中选择“属性”,设置其标题为“鼠标所在的窗口标题”;

  (4)在Mouse.h中加入对Mousehook.h的包含语句#Include”../Mousehook/Mousehook.h”;

  (5)在CMouseDlg.h的CMouseDlg类定义中添加私有数据成员:

《HOOK API 入门篇(六)》  CMouseHook m_hook;//加入钩子类作为数据成员

  (6)修改CmouseDlg::OnInitDialog()函数:

《HOOK API 入门篇(六)》  BOOL CMouseDlg::OnInitDialog()

《HOOK API 入门篇(六)》
《HOOK API 入门篇(六)》  
《HOOK API 入门篇(六)》{

《HOOK API 入门篇(六)》  CDialog::OnInitDialog();

《HOOK API 入门篇(六)》  ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX);

《HOOK API 入门篇(六)》  ASSERT(IDM_ABOUTBOX <0xF000);

《HOOK API 入门篇(六)》  CMenu* pSysMenu = GetSystemMenu(FALSE);

《HOOK API 入门篇(六)》  if (pSysMenu != NULL)

《HOOK API 入门篇(六)》
《HOOK API 入门篇(六)》  
《HOOK API 入门篇(六)》{

《HOOK API 入门篇(六)》   CString strAboutMenu;

《HOOK API 入门篇(六)》   strAboutMenu.LoadString(IDS_ABOUTBOX);

《HOOK API 入门篇(六)》   if (!strAboutMenu.IsEmpty())

《HOOK API 入门篇(六)》
《HOOK API 入门篇(六)》  
《HOOK API 入门篇(六)》{

《HOOK API 入门篇(六)》   pSysMenu->AppendMenu(MF_SEPARATOR);

《HOOK API 入门篇(六)》   pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);

《HOOK API 入门篇(六)》   }

《HOOK API 入门篇(六)》  }

《HOOK API 入门篇(六)》  SetIcon(m_hIcon, TRUE);//Set big icon

《HOOK API 入门篇(六)》  SetIcon(m_hIcon, FALSE);//Set small icon

《HOOK API 入门篇(六)》  //TODO: Add extra initialization here

《HOOK API 入门篇(六)》  CWnd * pwnd=GetDlgItem(IDC_EDIT1);

《HOOK API 入门篇(六)》  //取得编辑框的类指针

《HOOK API 入门篇(六)》  m_hook.starthook(pwnd->GetSafeHwnd());

《HOOK API 入门篇(六)》  //取得编辑框的窗口句柄并安装钩子

《HOOK API 入门篇(六)》  return TRUE;

《HOOK API 入门篇(六)》  //return TRUE unless you set the focus to a control

《HOOK API 入门篇(六)》  }

《HOOK API 入门篇(六)》

  (7)链接DLL库,即把../Mousehook/debug/Mousehook.lib加入到项目设置链接标签中;

  (8)编译项目生成可执行文件;

  (9)把Mousehook.DLL拷贝到../mouse/debug目录中;

  (10)先运行几个可执行程序,然后运行Mouse.exe程序,把鼠标在不同窗口中移动,在Mouse.exe程序窗口中的编辑框内将显示出鼠标所在的应用程序主窗口的标题。


推荐阅读
  • 如何用JNI技术调用Java接口以及提高Java性能的详解
    本文介绍了如何使用JNI技术调用Java接口,并详细解析了如何通过JNI技术提高Java的性能。同时还讨论了JNI调用Java的private方法、Java开发中使用JNI技术的情况以及使用Java的JNI技术调用C++时的运行效率问题。文章还介绍了JNIEnv类型的使用方法,包括创建Java对象、调用Java对象的方法、获取Java对象的属性等操作。 ... [详细]
  • 在ROS系统中,参数读写一般通过xml或者yaml格式的文件,其中yaml用得比较多。这是一种可读性高,轻量级的标记语言,简单好用。对于yaml文件,ros中用的较早版本的yaml- ... [详细]
  • 这篇文章将为大家详细讲解有关C#开发技巧有哪些,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。C#开发技 ... [详细]
  • JNI技术实践小结转自http:sett ... [详细]
  • 本文翻译自:WhatisaMavenartifact?什么是神器?为什么Maven需要它?#1楼参考:https:sta ... [详细]
  • [ipsec][strongswan]strongswan源码分析(五)plugin的配置文件的添加方法与管理架构解析
    我们知道,strongswan是基于插件式管理的。不同的插件有不同的配置文件,在这下面,我们以netlink的插件为例:etcstrongswan.dcharonkernel-ne ... [详细]
  • 1.方法一:采用OleDB读取EXCEL文件:把EXCEL文件当做一个数据源来进行数据的读取操作,实例如下:publicDa ... [详细]
  • Android源码深入理解JNI技术的概述和应用
    本文介绍了Android源码中的JNI技术,包括概述和应用。JNI是Java Native Interface的缩写,是一种技术,可以实现Java程序调用Native语言写的函数,以及Native程序调用Java层的函数。在Android平台上,JNI充当了连接Java世界和Native世界的桥梁。本文通过分析Android源码中的相关文件和位置,深入探讨了JNI技术在Android开发中的重要性和应用场景。 ... [详细]
  • 本文介绍了如何使用C#制作Java+Mysql+Tomcat环境安装程序,实现一键式安装。通过将JDK、Mysql、Tomcat三者制作成一个安装包,解决了客户在安装软件时的复杂配置和繁琐问题,便于管理软件版本和系统集成。具体步骤包括配置JDK环境变量和安装Mysql服务,其中使用了MySQL Server 5.5社区版和my.ini文件。安装方法为通过命令行将目录转到mysql的bin目录下,执行mysqld --install MySQL5命令。 ... [详细]
  • 以下不是python文件读写方法的是Python 文件I/O
    Python文件IO本章只讲述所有基本的IO函数,更多函数请参考Python标准文档。打印到屏幕最简单的输出方法是用print语句,你可以给它传递 ... [详细]
  • Linux提权之suid篇
    Linux提权之suid篇不知攻,焉知防一个在安服路上摸索的大三生,记录平时学习笔记suid前言:1.只有可以执行的二进制程序文件才 ... [详细]
  • lazarus使用sqlite3遇到特定字符时出现乱码的Bug
    lazarus使用zeosDB控件时发现SQLite一个奇怪的现象,应用程序编译为win64时,如果输入中国2022中国时出现乱码,win32和linux64正常,开始怀疑的sql ... [详细]
  • IDEA实用插件Lombok
    LombokLombok是一个可以通过简单的注解形式来帮助我们简化消除一些必须有但显得很臃肿的Java代码的工具,通过使用对应的注解,可以在编译源码的时候生成对应的方法。通常,我们所定义的对象和b ... [详细]
  • 安全加密C语言库OpenSSL,在Android中服务器和客户端之间的签名验证和数据加密通信等。OpenSSL系列文章:一、AndroidCMake轻松 ... [详细]
  • 编译原理c语言词法分析器,用C语言实现一个真正的词法分析器
    词法分析,是编译器的第一个模块,也是最简单的模块。最简单,指的是相对于编译器这种大型程序而言,与一般的代码相比还是有点复杂的 ... [详细]
author-avatar
null5269
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有