Очень отрицательные значения из GetWindowRect для окон Explorer при использовании VirtuaWin - PullRequest
2 голосов
/ 24 февраля 2011

[Я нашел ответ на этот вопрос, но я все равно спрашиваю его, чтобы, если у кого-то еще возникла такая же проблема, он мог его найти.Ответьте через минуту или около того после вопроса.]

Я хакую что-то, что перечисляет каждое окно в моем окне Windows, и кажется, что для (только) одного из моих окон GetWindowRect возвращает прямоугольникс очень отрицательными координатами y.

Возможные сложности: (1) у меня есть несколько мониторов, но (1a) координата y очень отрицательная, порядка -24000, и (1b) другие окна наоба монитора не показывают этот эффект;(2) я использую инструмент виртуального рабочего стола VirtuaWin, но (2a) другие окна на нескольких виртуальных рабочих столах и на обоих мониторах не показывают этого эффекта;(3) Я делаю все это на Python, используя модули pywin32.

Данное окно является окном Windows Explorer.Он не необычного размера или размещен (на глаз, по крайней мере).Окна проводника на текущем активном виртуальном рабочем столе не показывают такое поведение, но когда я создаю окна обозревателя на других виртуальных рабочих столах, они показывают тот же неожиданный эффект.

Я использую Windows XP и версию 4.3 VirtuaWin.

Итак, что происходит?

1 Ответ

1 голос
/ 24 февраля 2011

Итак, оказывается, что это не имеет ничего общего с Python или несколькими мониторами. VirtuaWin имеет два разных способа скрыть окна на устаревших виртуальных рабочих столах. Один из них включает в себя сокрытие окон; другой - возиться с их координатами, чтобы переместить их за экран.

Метод координатного искажения используется для окон Windows Explorer (а также, я полагаю, окон для некоторых версий Internet Explorer), потому что эти приложения, если вы скрываете окно, а затем создаете новое, закрывают ранее скрытое окно !

Соответственно, версии VirtuaWin начиная с версии 2.6 и выше перемещают окна, принадлежащие этим приложениям, за пределы экрана, а не скрывают их.

В результате y-координаты этих окон вычитают 25000 из их "истинных" значений.

...