C# 如何获取全局鼠标光标类型?

C# 如何获取全局鼠标光标类型?,c#,mouse,cursor,C#,Mouse,Cursor,如何将光标类型(指针、箭头等)设置为枚举(int)或位图 它应该在全球范围内工作,而不仅仅是以应用程序的形式。我相信,游标。如果鼠标不在应用程序范围内,Current不起作用。我已经研究了Win32 GetCursorInfo()和GetCursor()的交互映射,但不了解如何使用它们来获取游标类型 提前感谢。如果您可以获得光标位图,您可以轻松地将其与已知系统光标的标准位图进行比较。只需检查它们的尺寸是否相同——如果相同,则通过像素循环,如果不相等,则退出。如果您能够循环浏览整个位图,并且所有像

如何将光标类型(指针、箭头等)设置为枚举(int)或位图

它应该在全球范围内工作,而不仅仅是以应用程序的形式。我相信,游标。如果鼠标不在应用程序范围内,Current不起作用。我已经研究了Win32 GetCursorInfo()和GetCursor()的交互映射,但不了解如何使用它们来获取游标类型


提前感谢。

如果您可以获得光标位图,您可以轻松地将其与已知系统光标的标准位图进行比较。只需检查它们的尺寸是否相同——如果相同,则通过像素循环,如果不相等,则退出。如果您能够循环浏览整个位图,并且所有像素都匹配,那么您就知道有两个相同的光标。游标通常类似于24x24,因此这不应该是一个巨大的性能问题-可能有一种比较位图相等性的更快方法,但这是您可能会问的另一个问题

这种方法可能存在一些问题:

  • 光标可能是自定义光标(想想Photoshop的工具)
  • 光标可能已设置动画
  • 光标在屏幕上移动时可能会快速变化

作为附录,您希望通过此过程实现什么?很可能有一种完全正交的方法您可能没有考虑。

澄清一下:您希望能够确定用户的光标是什么。不管它在哪里?当其他程序使用自定义游标时,您可能会遇到问题。啊,这就是为什么cursor.Current或GetCursorInfo()可能没有可用的游标类型信息的原因。说得好!最起码,您可以将当前位图与已知的光标位图进行比较?怎样是的,无论用户的光标在哪里,它都应该工作。