【发布时间】:2015-01-14 09:48:07
【问题描述】:
我正在寻找以下问题的解决方案。 我有 2 个显示器,我想在某个显示器上找到第二个窗口。
我需要第二个窗口的原因是因为在那台显示器上我有一个正在运行的应用程序,它总是在顶部,我不需要那个窗口,所以之后的那个。
隐藏和显示最顶部不是一个选项,因为这会导致闪烁。
任何帮助将不胜感激。
编辑
由于不够清楚,我将尝试解释得更好。
我有 2 台显示器,M1 和 M2,其中 M1 是我的主显示器。 有一个应用程序在运行,它总是在最上面,这是我自己制作的一个应用程序。
我想在 M1 上找到最顶层的窗口,但忽略了我自己的应用程序。 所以排在第二位。
为了更清楚,您在 delphi 中制作应用程序,当您调试时您的表单会弹出,但我正在寻找的是返回 RAD Studio 的 HWND 而不是您自己的表单。
希望现在能更好地理解。
附:大卫明白了他最后评论的意思。
【问题讨论】:
-
使用
GetWindow传递GW_HWNDFIRST获取顶部窗口,然后使用GW_HWNDNEXT向下移动z 顺序。 -
@DavidHeffernan 我看了看,但我不知道这在双显示器上是如何工作的,假设我有一个窗口集中在我的第二个显示器上,那不是我会得到的第二个吗?而我需要监视器 1 上的第二个窗口。
-
您将获得所有显示器上的窗口。然后,您需要检查特定窗口是否在所需的监视器上。
-
@Teun 请edit你的问题,目前还不清楚。 “我有两台显示器,我想在那台显示器上找到第二个窗口。”您的问题中没有“那个监视器”。另外,“第二个窗口”是什么意思?
-
@JanDoggen 他想知道驻留在特定监视器上的哪个顶级窗口在 z 顺序中排在第二位。