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

时间:2009-09-28 22:17:24

标签: c# mouse cursor

如何将光标类型(手形,箭头等)作为枚举(int)或位图?

它应该全局工作,而不仅仅是在应用程序的表单中。我相信,如果鼠标位于应用程序范围之外,则Cursor.Current不起作用。我看过互操作Win32 GetCursorInfo()和GetCursor(),但不明白如何使用它们来获取游标类型。

提前致谢。

1 个答案:

答案 0 :(得分:0)

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

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

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

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