5

我正在拼凑一些东西,列出了我的 Windows 框上的每个窗口,而且似乎(仅)我的一个窗口 GetWindowRect 正在返回一个具有非常负 y 坐标的矩形。

可能的并发症:(1)我有多个显示器,但(1a)y坐标非常负,大约为-24000,(1b)两个显示器上的其他窗口不显示这种效果;(2) 我正在使用 VirtuaWin 虚拟桌面工具,但 (2a) 其他窗口,在多个不同的虚拟桌面和两个显示器上,不显示此效果;(3) 我使用 pywin32 模块在 Python 中完成所有这些工作。

有问题的窗口是 Windows 资源管理器窗口。它的大小或位置都不是异常的(至少是肉眼可见的)。当前活动的虚拟桌面上的资源管理器窗口不显示此行为,但是当我在其他虚拟桌面上创建资源管理器窗口时,它们会显示相同的意外效果。

我正在运行 Windows XP 和 VirtuaWin 4.3 版。

发生什么了?

4

1 回答 1

3

因此,事实证明这与 Python 或多个监视器无关。VirtuaWin 有两种不同的方式在非当前虚拟桌面上隐藏窗口。其中之一涉及隐藏窗口;另一个涉及弄乱它们的坐标以将它们移出屏幕。

坐标修改技术用于 Windows Explorer 窗口(我相信,还有一些 Internet Explorer 版本的窗口),因为这些应用程序,如果您隐藏一个窗口然后创建一个新窗口,则关闭之前隐藏的窗口!

因此,从 2.6 开始的 VirtuaWin 版本会将属于这些应用程序的窗口移出屏幕而不是隐藏它们。

效果是这些窗口的 y 坐标从它们的“真实”值中减去了 25000。

于 2011-02-24T16:08:05.810 回答