C#实现的鼠标钩子】的更多相关文章

最新对C#模拟键盘按键,鼠标操作产生了兴趣.特从网上收集了一些常用的API用来调用键盘,鼠标操作. class Win32API { #region DLL导入 /// <summary> /// 用于设置窗口 /// </summary> /// <param name="hWnd"></param> /// <param name="hWndInsertAfter"></param> ///…
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Windows.Forms; using System.Runtime.InteropServices; using System.ComponentModel; using System.Reflection; namespace Alif.CommonAPI.WindowsAPI { /// <s…
HOOK API (一)——HOOK基础+一个鼠标钩子实例 0x00 起因 最近在做毕业设计,有一个功能是需要实现对剪切板的监控和进程的防终止保护.原本想从内核层实现,但没有头绪.最后决定从调用层入手,即采用HOOK API的技术来挂钩相应的API,从而实现预期的功能.在这样的需求下,就开始学习了HOOK API. 0x01什么是HOOK API HOOK(钩子,挂钩)是一种实现Windows平台下类似于中断的机制[24].HOOK机制允许应用程序拦截并处理Windows消息或指定事件,当指定的…
Delphi是基于PASCAL语言的Windows编程工具,功能十分强大.然而在Delphi的帮助文件中,对Windows API函数的说明沿袭了 VC 的格式,和VC一样,对很多API函数的用法没有举例子详细说明,对一些深入系统内部的API函数更是语焉不详,给编程者带来不便.笔者仅就在Windows编程中鼠标钩子函数(HOOK)的实现,举例作一说明.   鼠标钩子函数也可叫做鼠标消息过滤器,是一种回调(CALLBACK)函数,归系统调用.如果用SetWindowsHook或SetWindows…
Windows系统是建立在事件驱动的机制上的,说穿了就是整个系统都是通过消息的传递来实现的.而钩子是Windows系统中非常重要的系统接口,用它能够截获并处理送给其它应用程序的消息,来完毕普通应用程序难以实现的功能.钩子能够监视系统或进程中的各种事件消息,截获发往目标窗体的消息并进行处理.这样,我们就能够在系统中安装自己定义的钩子,监视系统中特定事件的发生,完毕特定的功能,比方截获键盘.鼠标的输入,屏幕取词,日志监视等等.可见,利用钩子能够实现很多特殊而实用的功能.因此,对于高级编程人员来说,掌…
通常,说到Hook键盘鼠标,总需要一大堆代码,涉及各种不明白的API.而在DSAPI中,可以说已经把勾子简化到不能再简化的地步.甚至不需要任何示例代码即会使用.那么如何实现呢? Private WithEvents HK As New DSAPI.键盘鼠标钩子 注意上面带了WithEvent. 写完上面那句后,即可选择该HK,然后通过事件列表里选择相应的事件编写你需要的功能即可.支持的事件如下: 键按下 键按下并弹起 键弹起 鼠标活动 鼠标右键按下 鼠标右键弹起 鼠标中键按下 鼠标中键弹起 鼠标…
一台几年前买的上网本,让我安装了一个 win 10,然后用来测试程序的时候, 发现 使用 SetWindowsHookEx(WH_MOUSE_LL, mouseHook, GetModuleHandle("user32"), 0); 创建的[全局鼠标钩子]在运行过程中(比如将鼠标移到任务栏上另的窗口上时)会莫名其妙的丢失掉. 查了一下午原因,才找到原因:在[钩子回调]函数 mouseHook() 中,因为有一个屏幕取色的操作:GetPixel(), 这玩意非常耗时,上网本硬件性能本来就…
HHOOK mouseHook=NULL; LRESULT CALLBACK mouseProc(int nCode,WPARAM wParam,LPARAM lParam ) { if(nCode == HC_ACTION) //当nCode等于HC_ACTION时,要求得到处理 { if(wParam==WM_MOUSEWHEEL//屏蔽滑轮 ||wParam==WM_RBUTTONDOWN//屏蔽鼠标右键按下 ||wParam==WM_LBUTTONDOWN//屏蔽鼠标左键按下 ||wPa…
其中涉及到的一些API,网上均能查到详细的解释,这里不再熬述.源码下载 因为是全局钩子,所以要用dll注入.用到的鼠标消息结构如下: PMouseHookStruct = ^TMouseHookStruct; {$EXTERNALSYM tagMOUSEHOOKSTRUCT} tagMOUSEHOOKSTRUCT = packed record pt: TPoint; hwnd: HWND; wHitTestCode: UINT; dwExtraInfo: DWORD; end; TMouseH…
http://www.oschina.net/code/snippet_104607_45975 使用 Socket 获得网页内容,可以捕获错误页的内容 HttpClient http://www.oschina.net/code/snippet_172400_44067…
摘要 有这样一个需求,在程序隐藏之后,需要监控当前电脑是否有操作,如果1分钟内,无操作,则弹出视频,循环播放. 解决办法 从网上找的一个解决办法,可以通过钩子的方式实现,这里记录一下. /// <summary> ///监控键盘钩子 /// </summary> public class KeyboardHook { private const int WM_KEYDOWN = 0x100; private const int WM_KEYUP = 0x101; private c…
摘要:上篇文章<钩子编程(HOOK) 安装系统全局钩子>已经具体的解说了全局钩子的安装.本文将增强一下钩子的功能.实现屏蔽全部按键鼠标与系统功能键.要实现这个功能.须要安装两个全局钩子,"鼠标钩子" 与 "低级键盘钩子".鼠标钩子--实现屏蔽全部鼠标点击操作.低级键盘钩子--实现屏蔽全部键盘操作,包括屏蔽功能键(ALT+F4.WIN.ALT+TAB.ALT+ESC,CTRL+ESC....).注意:不包括CTRL+ALT+DEL功能键. 本文不会具体介绍…
/// <summary> /// 鼠标全局钩子 /// </summary> public class MouseHook { private const int WM_MOUSEMOVE = 0x200; private const int WM_LBUTTONDOWN = 0x201; private const int WM_RBUTTONDOWN = 0x204; private const int WM_MBUTTONDOWN = 0x207; private cons…
最近在编写Max插件时,其主容器FlowLayoutPanel由于隐藏了滚动条,要实现按住鼠标中键上下拖动的功能,因此尝试了全局鼠标事件.以及鼠标勾子,可惜由于Max不争气?都未能实现,于是代码报废,故将其分享于此. 一.全局鼠标事件,首先构建鼠标事件处理器 public delegate void MouseMovedEvent(); public delegate void MouseMDownEvent(); public delegate void MouseMUpEvent(); pu…
1.获取鼠标位置(在屏幕的位置)  CPoint m_mouse; GetCursorPos(&m_mouse); 2. 屏幕转化为客户端(控件的相对位置)& 客户端位置转化为屏幕位置 ClientToScreen(this->m_hwnd,m_mouse);  //客户端位置转化为屏幕位置 ScreenToClient(this->m_hwnd,m_mouse) ;  //屏幕转化为客户端 3.获取控件关于在屏幕的位置 CRect  rc GetWindowRect(&…
好久没写文章了,还记得年前面试了一家公司,为了检测一下我的学习能力,给了我一个任务,做一个自动登录并自动操作菜单的程序. 花了几天的时间研究了Hook以及使用WindowsAPI操作程序的知识,现在记录一下,也算是一次温习. 一丶Hook 在我看来Hook就是监测用户操作键盘(或虚拟键盘)以及鼠标的行为,对于Hook的理解我也不是很深入,也只是一点皮毛. 1. 实现Hook的步骤 ①安装钩子 ②监测键盘和鼠标的操作,用来实现相应的逻辑 ③卸载钩子 2.安装钩子 钩子分两种:键盘钩子和鼠标钩子,而…
如果这个程序在10几年前,QQ刚刚兴起的时候,有了这个代码,就可实现盗号了. 当然使用钩子我们更多的是实现"全局快捷键"的需求. 比如 程序最小化隐藏后要"某快捷键"来启动它. 钩子(hook),通俗的讲,她可以捕获到你的键盘和鼠标的相关操作消息. 关于hook的相关代码网上一搜一箩筐,这是整理起来比较完善和使用最方便的. //Declare wrapper managed POINT class. [StructLayout(LayoutKind.Sequenti…
今天,有个同事问我,怎样在C#中使用全局钩子?以前写的全局钩子都是用unmanaged C或C++写个DLL来实现,可大家都知道,C#是基于.Net Framework的,是managed,怎么实现全局钩子呢?于是开始到网上搜索,好不容易找到一篇,318804 - HOW TO: Set a Windows Hook in Visual C# .NET,里面详细的说明了如何使用鼠标钩子捕获鼠标的移动等,可是,它只能在Application里起作用,出了Application就没用了,就是说它还是…
今天,有个同事问我,怎样在C#中使用全局钩子?以前写的全局钩子都是用unmanaged C或C++写个DLL来实现,可大家都知道,C#是基于.Net Framework的,是managed,怎么实现全局钩子呢?于是开始到网上搜索,好不容易找到一篇,318804 - HOW TO: Set a Windows Hook in Visual C# .NET,里面详细的说明了如何使用鼠标钩子捕获鼠标的移动等,可是,它只能在Application里起作用,出了Application就没用了,就是说它还是…
第一部分:API函数简介 1.       SetWindowsHookEx函数 函数原型 HHOOK SetWindowsHookEx( int idHook,        // hook type   HOOKPROC lpfn,     // hook procedure   HINSTANCE hMod,    // handle to application instance   DWORD dwThreadId   // thread identifier ); 函数功能:该函数将…
1 概述 在c++中有钩子程序,但是在C#还没有对其进行封装,所以需要自己根据实际情况调用钩子.钩子在我的理解下是,通过初始化钩子与系统中消息映射建立某种关系,当点击鼠标或者键盘,就会通过钩子中的回调函数获取信息. 钩子分为全局钩子和私有钩子 2 编写流程 a 从c++中导入,需要自己添加导入函数. 代码为: [DllImport("user32.dll")] static extern IntPtr SetWindowsHookEx(HookType hook, HookProc c…
最新版本(unicode版本,各种语言环境显示中文)下载地址:http://www.jyxtec.com/edahelper/EDAHelper-2.1.13.7z 繁体版:http://www.jyxtec.com/edahelper/EDAHelper-tw-2.0.10.7z 专门针对P-CAD的鼠标增强工具版本:http://www.jyxtec.com/edahelper/EDAHelperForP-CAD.7z (专版不会再加功能) EDAHelper(V2.1.13)功能介绍: 本…
安装.卸载钩子的相关函数 钩子类型 按功能分: 1.WH_CALLWNDPROC和WH_CALLWNDPROCRET:使你可以监视发送到窗口过程的消息3.WH_DEBUG    调试钩子4.WH_FOREGROUNDIDLE   当应用程序的前台线程大概要变成空闲状态时,系统就会调用WH_FOREGROUNDIDLE 5.WH_JOURNALRECORD   监视和记录输入事件6.WH_JOURNALPLAYBACK   回放用WH_JOURNALRECORD记录事件7.WH_KEYBOARD …
原文出自:http://www.cnblogs.com/iEgrhn/archive/2008/02/17/1071392.html using System; using System.Collections.Generic; using System.Reflection; using System.Runtime.InteropServices; using System.Text; using System.Windows.Forms; namespace DCIEngine.Frame…
poptest是国内唯一一家培养测试开发工程师的培训机构,以学员能胜任自动化测试,性能测试,测试工具开发等工作为目标.如果对课程感兴趣,请大家咨询qq:908821478,咨询电话010-84505200. 说起钩子(Hook)熟悉windows开发的人应该比较熟悉,例如鼠标钩子.键盘钩子等.用简单的语言描述就是在正常处理流程中安置某个钩子,当执行到安置钩子的地方就将进入指定的钩子函数进行处理,待处理完再返回原流程继续处理,当然也可以直接停止原流程的执行.所以说钩子是windows消息处理的一个…
异想天开的想记录一下自己每天的键盘键位走向,于是就在网上搜索了一下相关的实现,然后就发现了一个第三方的库pyHook.封装的很好,我们只需要傻瓜式的调用里面的API就可以了. 下面是我在使用pyHook 的过程中遇到的问题和经验总结. 准备工作 操作系统: windows7 64位旗舰版 Python版本: 2.7.11 第三方库: pyHook 下载地址 pythoncom /pywin32 下载地址 IDE: PyCharm 2016.2 pro API 基础 PyHook是一个基于Pyth…
说起钩子(Hook)熟悉windows开发的人应该比较熟悉,例如鼠标钩子.键盘钩子等.用简单的语言描述就是在正常处理流程中安置某个钩子,当执行到安置钩子的地方就将进入指定的钩子函数进行处理,待处理完再返回原流程继续处理,当然也可以直接停止原流程的执行.所以说钩子是windows消息处理的一个重要的机制,专门用于监控指定的某些事件消息. 如果往更高层更抽象的角度来看,钩子其实是一种机制是一种思想,它的核心思想是在整个复杂的处理流程的所有关键点都触发响应的事件消息,假如添加了钩子则会调用钩子函数,函…
pyHook包为Windows中的全局鼠标和键盘事件提供回调. 底层C库报告的信息包括事件的时间,事件发生的窗口名称,事件的值,任何键盘修饰符等. 而正常工作需要pythoncom等操作系统的API的支持. 先链上一篇<pyHook和pythoncom的安装>. 然后开始讲pyHook的使用. 关于pyHook的使用,网上现存的大多教程如下: import pythoncom import pyHook def onMouseEvent(event): # 监听鼠标事件 print("…
参考博客 一.SetWindowsHookEx HHOOK WINAPI SetWindowsHookEx( __in int idHook, \\钩子类型 __in HOOKPROC lpfn, \\回调函数地址 __in HINSTANCE hMod, \\实例句柄 __in DWORD dwThreadId); \\线程ID 这里使用的钩子类型idHook 是WH_MOUSE_LL. 在使用SetWindowsHook截获鼠标事件时,如果使用WH_MOUSE参数,则只能监控钩子所在模块的鼠…
转自:https://www.cnblogs.com/qiernonstop/p/3654021.html 用Python监听鼠标和键盘事件 PyHook是一个基于Python的“钩子”库,主要用于监听当前电脑上鼠标和键盘的事件.这个库依赖于另一个Python库PyWin32,如同名字所显示的,PyWin32只能运行在Windows平台,所以PyHook也只能运行在Windows平台. 关于PyHook的使用,在它的官方主页上就有一个简单的教程,大体上来说,可以这样使用: #!/usr/bin/…