`
wsql
  • 浏览: 12034603 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
文章分类
社区版块
存档分类
最新评论

c#中通过设置钩子监视鼠标移动

阅读更多

这个问题来自论坛提问,C#的大致代码如下

using System;
using System.Windows.Forms;
using System.Runtime.InteropServices;
namespace WindowsApplication1
... {
public partial class Form1:Form
... {
public Form1()
... {
InitializeComponent();
}


private void Form1_Load( object sender,EventArgse)
... {
Win32Hookhook
= new Win32Hook();
hook.onMouseChange
+= new EventHandler(hook_onMouseChange);
hook.SetHook();
}


void hook_onMouseChange( object sender,EventArgse)
... {
this .Text = Cursor.Position.ToString();
}

}

public class Win32Hook
... {

[DllImport(
" kernel32 " )]
public static extern int GetCurrentThreadId();

[DllImport(
" user32 " ,CharSet = CharSet.Auto,CallingConvention = CallingConvention.StdCall)]
public static extern int SetWindowsHookEx(
HookTypeidHook,
HOOKPROClpfn,
int hmod,
int dwThreadId);

public enum HookType
... {
WH_GETMESSAGE
= 3
}


public delegate int HOOKPROC( int nCode, int wParam, int lParam);

public event System.EventHandleronMouseChange;

public void SetHook()
... {
SetWindowsHookEx(HookType.WH_GETMESSAGE,
new HOOKPROC( this .MyKeyboardProc),
0 ,
GetCurrentThreadId());
}


public int MyKeyboardProc( int nCode, int wParam, int lParam)
... {
if (onMouseChange != null )
... {
onMouseChange(
null , null );
}

return 0 ;
}

}

}
分享到:
评论

相关推荐

    \C#中通过设置钩子监视鼠标移动

    ### C#中通过设置钩子监视鼠标移动 在C#编程中,监视用户输入(如键盘按键、鼠标移动等)是常见的需求之一。本篇文章将详细介绍如何利用C#中的钩子(Hook)机制来实现对鼠标移动的监视,并提供一个简单的示例程序。...

    C#编写的模拟鼠标点击和移动操作源码

    钩子是一种允许程序监视特定事件的方法,比如鼠标或键盘事件。C#中,我们可以使用P/Invoke(平台调用)技术来调用这些API函数。其中,`SetWindowsHookEx`函数用于设置钩子,`GetMessage`和`DispatchMessage`用于处理...

    基于全局的C#键盘,鼠标钩子类库,示例

    在Windows操作系统中,钩子是一种机制,允许应用程序监视系统级事件,如键盘输入或鼠标移动。通过设置钩子,我们可以拦截这些事件并在它们发生时执行自定义逻辑。在C#中,我们可以使用P/Invoke(Platform Invoke)...

    C#版本键盘钩子及鼠标控制

    在“C#版本键盘钩子及鼠标控制”项目中,开发者通过特殊的技术手段实现了对这个组合键的间接屏蔽。这可能涉及到检测和过滤特定的键盘事件,甚至可能使用低级键盘钩子(WH_KEYBOARD_LL),这种钩子可以捕获系统中的...

    c#鼠标钩子获取位置信息.rar

    通过这个例子,你可以了解到如何在C#中设置鼠标钩子以及获取鼠标位置的基本步骤。在实际项目中,可能还需要考虑多线程、钩子的卸载、异常处理等问题,以确保程序的稳定性和可靠性。同时,对于钩子的使用,要注意不要...

    C# 全局勾子(Hook 含鼠标键盘窗口内核等)

    2. 在适当的地方处理钩子事件,如记录鼠标移动、键盘按下等。 3. 提供用户界面,允许用户启用/禁用钩子或者查看已捕获的事件。 4. 应用程序退出时卸载钩子。 五、注意事项 1. 性能影响:全局钩子会消耗系统资源,...

    c# hook 鼠标键盘事件

    描述中提到"监视鼠标和键盘操作",这是通过设置全局钩子来实现的。全局钩子允许一个进程拦截系统中任何线程的特定类型的事件,包括鼠标和键盘事件。在C#中,可以使用P/Invoke(Platform Invoke)技术调用Win32 API...

    C# 屏幕锁机(利用勾子锁住鼠标和键盘)

    鼠标钩子(Mouse Hook)同样也是通过`SetWindowsHookEx`函数设置,但这次是针对鼠标事件。在这个屏幕锁机程序中,鼠标可以移动,但其行为被限制在指定的区域,使得用户无法进行有效的操作。 此外,程序还特别处理了...

    C#系统钩子

    C#中实现系统钩子的关键在于对P/Invoke(平台调用)的理解和应用,因为.NET框架本身并不直接支持设置系统钩子。P/Invoke允许C#代码调用非托管的、原生的Windows API函数。 【键盘监听】 在C#中,常见的系统钩子...

    C#实现的鼠标钩子

    在Windows API中,有不同类型的钩子,如WH_MOUSE用于监视鼠标消息,而WH_MOUSE_LL则是在所有线程中监视鼠标消息的低级版本。 3. **SetWindowsHookEx函数**:这是一个来自user32.dll动态链接库的API函数,用于安装...

    C#获取屏幕坐标位置(鼠标钩子)

    总结来说,"C#获取屏幕坐标位置(鼠标钩子)"是一个利用C#调用Windows API创建低级别鼠标钩子的过程,它可以实时捕获鼠标在屏幕上的移动位置。这个程序对于学习C#的开发者来说,是一个很好的实践示例,因为它展示了...

    屏幕取词器(获取鼠标选取的文字)

    通过设置WH_MOUSE_LL(低级鼠标钩子)类型,我们可以捕获鼠标的点击和移动事件。一旦鼠标选择了一段文本,我们的应用程序就会收到通知。 接下来,当鼠标选中文字后,我们需要模拟用户按下`Ctrl+C`的组合键,以便将...

    (原创可执行)C#全局鼠标操作实例VS2008

    3. **钩子机制**:为了实现全局鼠标监听,程序可能使用了Windows API中的钩子函数,如`SetWindowsHookEx`,这样即使鼠标在其他应用程序上移动也能捕获到相应的事件。 4. **P/Invoke**:由于Windows API是用C语言...

    C# 2005 利用HOOK捕获键盘和鼠标动作 DLL和Test

    在Windows操作系统中,Hook机制是一种系统级的通知机制,通过安装Hook,开发者可以监控特定类型的事件,如键盘输入、鼠标移动或点击等。在C#中,我们可以利用.NET Framework提供的API来实现Hook。 项目的核心部分是...

    模拟鼠标和键盘操作的钩子程序

    通过分析这些源码,我们可以深入理解模拟鼠标和键盘操作的具体实现方式,包括如何设置和移除钩子,如何处理捕获到的事件,以及如何实现回放逻辑等。这对于学习和自定义此类程序具有很高的价值。 6. **应用领域**:...

    HOOKAPI钩子操作实例.rar

    在Windows操作系统中,HOOKAPI钩子是一种强大的技术,它允许开发者监控系统中特定事件的发生,例如键盘输入、鼠标动作或消息处理。通过设置钩子,我们可以拦截这些事件并在它们发生时执行自定义代码。"HOOKAPI钩子...

    C#实现的用户行为监控

    在处理鼠标移动事件时,我们可以通过`GetMessagePos`或`GetCursorPos`函数获取鼠标的当前位置,然后将其存储在日志或数据结构中。对于鼠标点击事件,我们需要记录下点击的时间、位置以及按钮状态。 除了鼠标事件,...

    捕捉鼠标坐标及控制鼠标位置的小猫捕捉程序

    在C#或C++等编程语言中,可以使用`SetWindowsHookEx`函数来设置全局鼠标钩子。这个函数需要一个钩子处理函数,当鼠标事件发生时,系统会调用这个函数。在这个处理函数中,我们能获取到鼠标的当前位置、移动方向等...

    C#鼠标键盘触摸板测试源代码

    在Windows编程中,钩子是一种机制,允许一个程序监视其他程序的特定事件,如键盘或鼠标事件。通过安装全局钩子,你可以捕获系统级别的输入事件,无论这些事件发生在哪个窗口。在这个项目中,开发者可能使用了`...

    日志记录钩子和回放钩子应用源码

    在Windows操作系统中,钩子(Hook)是一种强大的技术,它允许开发者监视系统中特定事件的发生,比如键盘输入、鼠标操作等。本主题将深入探讨"日志记录钩子"和"回放钩子",特别是在WH_JOURNALRECORD和WH_...

Global site tag (gtag.js) - Google Analytics