获取正在运行应用程序的屏幕

时间:2012-07-11 21:31:10

标签: c# winapi position

当我拿到手柄时,我想检测一个窗口在哪个屏幕上显示。我在Win API中找到了SetWindowPos()函数,但不幸的是GetWindowPos()只有GetWindowRect(),但这导致了一些奇数值。

我有两个设备,一个1280x1024,右一个(主要)1680x1050。当我想获得最小化的firefox的位置时,我得到两个屏幕的b / l / r / t -31973 / -32000 / -31840 / -32000。

我怎么知道这是我的左边还是右边的屏幕?

2 个答案:

答案 0 :(得分:2)

尝试GetWindowPlacement,以便找到窗口在恢复后将使用的矩形。

答案 1 :(得分:2)

WinAPI具有MonitorFromRect功能,这可能就是您所需要的。我不确定是否有C#等价物,但你可以通过互操作来调用它。

请注意,窗口可以位于两个显示器上,也可以两者都不显示。 API具有标志,例如MONITOR_DEFAULTTONEAREST