在C#中是否可以收听发送到其他进程中其他窗口的鼠标相关的Windows消息?
答案 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
但是也有其他鼠标相关的窗口消息。