【问题标题】:Get cursor position on multiple monitors?在多个显示器上获取光标位置?
【发布时间】:2015-05-15 20:56:07
【问题描述】:

我正在尝试从多显示器显示中获取光标的位置。使用

Point cursorPosition = Cursor.Position;

返回光标相对于当前显示器的位置。如果我有两个显示器,并且我使用了上面的代码行,并且我的鼠标在我的第二个显示器上(在我的第一个显示器的右侧),并且我将光标绘制到图像上,它会出现在左侧手边显示器,应该在右手边显示器上。

编辑:

我正在截取所有显示器的屏幕截图,并希望将光标添加到位图中,但是使用 Cursor.Position 会将光标放在屏幕截图位图的“左侧”显示器上,即使光标是在“右侧”监视器上。

谢谢

【问题讨论】:

  • 你画得怎么样?所有监视器共享一个坐标空间。
  • 你可以得到每台显示器的分辨率并将鼠标位置标准化为屏幕总分辨率吗?
  • @SLaks Cursor.Position 总是相对于当前显示,而不是桌面/屏幕。它会在转换到新显示器时重置回 0/0。
  • @RonBeyer:我试过了,但事实并非如此。
  • @SLaks 你是对的,很抱歉我在想别的东西,我收回我的声明。

标签: c#


【解决方案1】:

你可以得到光标所在的屏幕:

var screen = Screen.FromPoint(Cursor.Position);

在显示图像之前考虑屏幕

【讨论】:

  • 我的问题可能应该更清楚。我正在截取屏幕截图,我得到了 VirtualScreen 大小(我的所有显示器都为一个)。我想把光标放在正确的位置。这可能会有所帮助,如果有帮助,我会发布我的答案。
  • 完整的命名空间是System.Windows.Forms.Screen.FromPoint(Cursor.Position);,如果你想知道的话。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-03-02
  • 1970-01-01
  • 1970-01-01
  • 2016-04-17
  • 2023-03-14
  • 2021-10-15
  • 1970-01-01
相关资源
最近更新 更多