如何收听其他进程的鼠标事件

时间:2013-01-24 07:10:47

标签: c# windows-messages

在C#中是否可以收听发送到其他进程中其他窗口的鼠标相关的Windows消息?

3 个答案:

答案 0 :(得分:5)

您可以查看Codeplex Application and Global Mouse and Keyboard Hooks library

  

此库附加到Windows全局钩子,跟踪键盘和鼠标点击和移动,并使用KeyEventArgs和MouseEventArgs引发常见的.NET事件,因此您可以轻松检索所需的任何信息:
  鼠标坐标
  单击鼠标按钮
  鼠标滚轮滚动
  按键和释放按钮
  特殊关键状态

从上面的链接Documentation

  

在开始之前,重要的是要知道挂钩术语可以并且将可以互换使用。全局钩子也称为系统或系统范围的钩子,并将包含整个操作系统。应用程序挂钩通常称为Local,因为顾名思义,它只对应于放置挂钩(或特定线程)的单个应用程序。

答案 1 :(得分:5)

在codeplex中有一个开源项目 Application and Global Mouse and Keyboard Hooks .Net Libary in C#
如果你想这样做,你可以在Windows Hooks上做一些额外的搜索 This文章展示了如何

答案 2 :(得分:1)

没有管理方法可以做到这一点。 但是,使用Windows Api,这是可能的:

这应该对你有帮助。

C# - Capturing Windows Messages from a specific application

捕获WM_MOUSEMOVE将是一个良好的开端 http://msdn.microsoft.com/en-us/library/windows/desktop/ms645616(v=vs.85).aspx

但是也有其他鼠标相关的窗口消息。