Gar*_*han 5 windows winapi virtual-desktop
我正在拼凑一些东西,列出我的 Windows 盒子上的每个窗口,并且似乎(仅)对于我的一个窗口 GetWindowRect 返回一个具有非常负的 y 坐标的矩形。
可能的复杂情况:(1) 我有多个显示器,但 (1a) y 坐标非常负,约为 -24000,并且 (1b) 两个显示器上的其他窗口不显示此效果;(2) 我正在使用 VirtuaWin 虚拟桌面工具,但 (2a) 其他窗口,在多个不同的虚拟桌面和两台显示器上,不显示此效果;(3) 我使用 pywin32 模块在 Python 中完成所有这些工作。
相关窗口是 Windows 资源管理器窗口。它的大小或位置并不异常(至少从肉眼看来)。当前活动虚拟桌面上的资源管理器窗口不会显示此行为,但是当我在其他虚拟桌面上创建资源管理器窗口时,它们会显示相同的意外效果。
我运行的是 Windows XP 和 VirtuaWin 4.3 版本。
发生什么了?
所以,事实证明这与 Python 或多显示器无关。VirtuaWin 有两种不同的方式在非当前虚拟桌面上隐藏窗口。其中之一涉及隐藏窗户;另一个涉及弄乱它们的坐标以将它们移出屏幕。
坐标修改技术用于 Windows 资源管理器窗口(我相信也用于某些版本的 Internet Explorer 的窗口),因为这些应用程序,如果您隐藏一个窗口然后创建一个新窗口,则会关闭先前隐藏的窗口!
因此,VirtuaWin 2.6 及以上版本将属于这些应用程序的窗口移出屏幕,而不是隐藏它们。
效果是这些窗口的 y 坐标从其“真实”值中减去 25000。