当前位置:小鱼儿玄机1站开奘结果 > 次动作函数 >

利用钩子函数捕获Windows鼠标动作

  我们知道,Windows系统是建立在消息传递机制基础上的,几乎所有的程序活动都由消息来驱动。Windows的钩子机制可以看作是一个消息中转 站,控制系统发出消息的处理和传递,利用钩子,我们可以截获系统发给应用程序的消息,经过处理后决定是否将消息再发给下一个应用程序。

  利用钩子的这一特性,我们可以创建一个监控程序,用来收集和控制系统发出的消息。

  编制Windows的钩子程序,需要用到几个SDK中的API函数。下面列出这几个函数的原型及说明:

  函数说明:函数将在系统中挂上一个由idHook指定类型的钩子,监控并处理相应的特定消息。

  由于钩子的处理涉及到模块及进程间的数据地址问题,一般情况是把钩子整合到一个动态链接库(DLL)中,并设立一个全局数据共享数据段,以存贮一些全局变量,保留上次钩子消息事件发生时的状态。全局共享数据段可以用如下的格式定义:

  本文的范例程序演示了如何编制一个鼠标钩子(WH_MOUSE)程序,其它类型的钩子程序的编写过程与范例程序类似。

  建立钩子程序时需要把钩子处理整合到动态链接库中,所以例程中需要建立两个Project。

  (2) 修改资源中的主选单,增加一个选单项“监控”,下有三个子选单项,分别为“启动”、“撤销”和“取出”。

  (4) 分别修改“启动”、“撤销”和“取出”选单项的Command响应函数如下:

  编译这个Project,并把Spy.dll放到生成的可执行文件目录下,便可运行程序。

  运行时,选择“监控”选单中的“启动”选单项,钩子便开始工作,监视鼠标的活动情况;选择“撤销”选单项,系统便撤销钩子;选择“取出”选单项,程序便报告在监控期间,用户单击鼠标左键的次数。

  近日要实现远程控制,需要捕获本地鼠标信息,传输到远程计算机。鼠标事件,无非是WM_LBUTTONDOWN、WM_LBUTTONUP、WM_MOUSEMOVE(就说这基本的三个命令吧),开始以为很容易获...博文来自:dijkstar的专栏

  在日常的一些操作中,会遇到重复的鼠标动作,类似按键精灵的软件就会成为比较好的助手。这里借助网上查找的资料自己实现了一个简单的鼠标动作录制软件。...博文来自:君浪的博客

  阅读本文章前应具有一定编程基础和WindowAPI相关知识第一步,先封装HookBase抽象类,因所有Hook的都具有注册、卸载逻辑,且注册、卸载大同小易。如下:publicabstractclass...博文来自:的博客

  前言为页面增加与用户的交互是JavaScript的基本功能之一。为此,我们需要一些机制来检测用户和程序在特定时间在做什么。比如鼠标在浏览器的什么位置,用户是否点击鼠标或按了键,页面是否完整加载到浏览器...博文来自:顾林海

  窗体本身带的键盘鼠标事件函数只能响应窗体自己的事件,窗体之外的事件是不会响应的。比如当窗体最小化的时候也响应就要用全局钩子拦截消息来处理了。大概过程就是在窗体初始化时加载钩子,等待事件消息,事件触发后...博文来自:gaiazhang‘s blog

  自己封装了AClick.cs和Win32Api.cs两个类,下面有源码,直接调用即可源码地址:C#单击操作、位置记录、捕获单击事件源码效果图:1.单击操作newAClick().AutoClick(5...博文来自:马儿不吃草

  在安装WindowsXP虚拟机的时候,通过远程桌面操作,会发现键盘可以用,但鼠标没有作用,而且网卡也不象Windows7一样,安装完成后就可以看到。...博文来自:防火墙技术专栏

  对比于《【mfc】鼠标、键盘响应事件》(点击打开链接),win32的鼠标响应事件更能揭示出窗体程序的本质。鼠标响应事件同样在窗体程序的消息回调函数LRESULTCALLBACKWndProc(HWND...博文来自:编程记录,亲测有效

  钩子函数钩子函数是指在执行函数和目标函数之间挂载的函数,框架开发者给调用方提供一个point-挂载点,至于挂载什么函数有我们调用方决定,这样大大提高了灵活性钩子函数原理图常用的钩子函数before_f...博文来自:DaYe的博客

  我们知道Windows中的窗口程序是基于消息,由事件驱动的,在某些情况下可能需要捕获或者修改消息,从而完成一些特殊的功能(MFC框架就利用Windows钩子对消息进行引导)。对于捕获消息而言,无法使用...博文来自:其疾如风 其徐如林 侵略如火 不动如山

  鉴于与同事的聊天过程中提到,键盘钩子一定要配合界面程序(MFC之类)才可以使用,并且单线程绝对无法实现。带着这个问题,查了比较多的资料,确实关于控制台实现键盘钩子的资料非常少,大部分都是基于MFC的,...博文来自:u014510986的博客

  自己制作的鼠标钩子函数和运行程序,可以捕获鼠标所在窗口的标题,然后显示在文本框中,希望对新手有所帮助。

  Microsoft Visual Studio 2010做的C#简单的鼠标钩子应用实例实例,实现实时监控鼠标位置(需要编译后,在Release文件夹那里运行)主要代码: public delegate int HookProc(int n...

  在qt界面中,响应事件的往往是界面,而界面上的控件则被屏蔽,比如想要让QLabel响应鼠标事件,之前已写到可以通过把QLabel提升为类,在类中自定义鼠标响应事件及重绘事件等事件。最近学习发现通过Ev...博文来自:fengjliu的博客

  1.选择【鼠标/键盘信息】标签页,再点击录制并开始在对应的屏幕位置进行相应的鼠标和键盘操作  操作结束后,点击停止录制2.点击脚本生成-就可生成对应的TCL脚本语句3.点击拷贝至TCL...博文来自:谷神俞的博客

  马上要答辩了,写一下我编程序的思路,方便回顾一下。刚接触Kinect的时候是在2个月前,老师给了2个项目,1个是基于Kinect的手势识别,另一个是基于Kinect的运动训练系统,假期的时候琢磨了一下...博文来自:的博客

  理解下windows的消息机制:1.发生键盘输入事件时,WM_KEYDOWN消息被添加到操作系统消息队列2.OS判断哪个APP发生了事件,然后从系统消息队列取出消息分发到应用程序消息队列3.APP监视...博文来自:ProgrammingLearner的博客

  最近在玩键盘监控,于是有了这么一个文章,鄙人做成的成品是获取到某某人在某某网登录的时候(仅限某某网)会把字符串跟截图统统发到鄙人邮箱,当然只是做着玩的,大家不要想去干坏事哈!以下的图是成品:(成品图)...博文来自:Python达人

  需求当鼠标划过导航栏中某一菜单项时,显示其完整子菜单;鼠标移动出该菜单项及其对应的子菜单时,延迟0.5s子菜单消失。思路首先,将子菜单#sub-menu设置为display:none;并且在菜单项及其...博文来自:这是个真的技术博客

  最近做一个项目,需要截获特定应用程序里鼠标和键盘的消息事件。之前本人对windows底层的消息处理机制并不熟悉,通过学习知道钩子机制可以帮助我们截获处理windows消息或特定事件,现将本人所掌握的知...博文来自:nj2011zy的博客

  信号的捕捉过程我们现在知道了信号在产生之后不是被立即处理的,而是在合适的时候才进行处理,那么什么时候是合适的时候呢?信号又是怎么被捕捉的呢?合适的时候是指:从内核态切换为用户态时进行信号的捕捉。在Li...博文来自:Miss_Monster的博客

  本人现承接各种脚本/程序。包括:网页脚本(网页数据读取,post提交,自动下注等。)办公脚本(WordExcelXls操作等)安卓模拟器脚本游戏脚本(自动喊话等简单功能,复杂暂不接)等其他脚本各种程序...博文来自:u013742142的博客

  简介键盘记录功能一直是木马等恶意软件窥探用户隐私的标配,那么这个功能是怎么实现的呢?在Ring3级下,微软就为我们内置了一个Hook窗口消息的API,也就是SetWindowsHookEx函数,这个函...博文来自:雨者

  windows下获取鼠标的信息发现很多东西在网上都比较零散。于是自己进行了一些整理。比如这期间看了msdn上的一些english的文档。发现很多东西还是要在官网上去看,毕竟是第一手资料。比如我这次需要...博文来自:道亦无名

  /* *1.窗体添加文案提示, *鼠标上移按钮,添加提示语,鼠标移除,提示语消失 *点击按钮,按钮消失、原窗体消失 *点击按钮,弹出新的弹窗, * 并可以对新的弹窗再进行操作 * 问题:新的弹窗再次...博文来自:七号空间

  做一个发送表情的对话框,类似微信和QQ一样的,点击表情按钮,弹出表情框,鼠标点击表情框外时,这个表情框被kill。说白了就是在这个窗口上获得窗口外面的鼠标消息。Google百度了一番,很多人说道使用钩...博文来自:一蓑烟雨任平生 也无风雨也无晴

  最近写了个python脚本,在服务器上运行,经常莫名其妙的退出,也不知道原因,后面查了资料得到下面两个方法去捕捉退出的发生,一个是捕捉kill信号,另一个是注册atexit函数例子: importos...博文来自:iteye_6700的博客

  jquery/js实现一个网页同时调用多个倒计时(最新的)nn最近需要网页添加多个倒计时. 查阅网络,基本上都是千遍一律的不好用. 自己按需写了个.希望对大家有用. 有用请赞一个哦!nnnn//jsn...博文来自:Websites

  这一篇,代码折腾的时间较长,完成之后都是一些小细节,主要有三:n1、引入的依赖错误;n2、启动配置错误;n3、xml文件的mapper命名空间错误。n一、完整的pom.xmlnn...博文来自:lxhjh的专栏

  本系列博客学习由非官方人员 半颗心脏 潜心所力所写,仅仅做个人技术交流分享,不做任何商业用途。如有不对之处,请留言,本人及时更改。1、 Esp8266之 搭建开发环境,开始一个“hellow worl...博文来自:徐宏的博客。

  扫二维码关注,获取更多技术分享nnn 本文承接之前发布的博客《 微信支付V3微信公众号支付PHP教程/thinkPHP5公众号支付》必须阅读上篇文章后才可以阅读这篇文章。由于最近一段时间工作比较忙,...博文来自:Marswill

  采用EasyUI 1.4.x 版本,默认default风格,异步加载页面,多Tab页展示,使用JSON文件模拟从后台动态获取数据。...博文来自:般若

  DirectX修复工具API Sets强力修复实验包下载地址:nn密码:5y5vnnnn实验包使用说明...博文来自:VBcom的专栏

  接着上次的图书管理系统rnrn修改完问题后把SpringBoot成功部署到了服务器上rn测试了下api接口,能正常访问rn那么下面就是在服务器上部署前端的vue.js了rnrnrn这里的话我们要明确一...博文来自:小时的枫的博客

http://syn992.com/cidongzuohanshu/337.html
点击次数:??更新时间2019-07-02??【打印此页】??【关闭
  • Copyright © 2002-2017 DEDECMS. 织梦科技 版权所有  
  • 点击这里给我发消息
在线交流 
客服咨询
【我们的专业】
【效果的保证】
【百度百科】
【因为有我】
【所以精彩】