Программное обеспечение для изменения размера окна, когда оно достигает края экрана

Очень часто я отодвигаю окно, чтобы лучше видеть другое окно. Я заметил, что когда я это делаю, я часто опускаю окно . При этом часть этого окна теперь видна, а часть невидима (за краем экрана).

Мне нужна программа, которая изменит размер окна, когда оно достигнет края экрана, чтобы все окно всегда было видно.

В идеале я мог бы указать, к каким краям будет применяться эта функциональность (хотя это и не является обязательным требованием).

В идеале, но также и не обязательно, я мог бы указать, к каким приложениям будет применяться эта функциональность (я бы выбрал свой текстовый редактор в качестве первого приложения!).

Какое бесплатное программное обеспечение для Windows имеет эту функцию?

Ответы (3)

AutoHotKey

AutoHotkey (AHK) — это бесплатное программное обеспечение для создания и автоматизации макросов с открытым исходным кодом для Windows, которое позволяет пользователям автоматизировать повторяющиеся задачи.

Ниже приведен скрипт AutoHotKey для автоматического изменения размера окна всякий раз, когда оно пересекает границу.

  • Вы можете указать, с какими ребрами он работает, закомментировав ненужные блоки (3 строки) под соответствующей меткой ребра. Строки можно закомментировать, поставив перед ними точку с запятой.
  • Обратите внимание, что этот скрипт работает только на основном мониторе. Конфигурация с несколькими мониторами привела бы к более сложной реализации, поэтому я этого не делал, но я готов расширить сценарий, если вам нужно, чтобы он работал более чем на одном экране.
  • В настоящее время он работает в активном окне. Можно добавить список включения или исключения, который содержит части заголовков окон. Я обновлю ответ, когда эта часть будет готова

    #Persistent
    #NoEnv
    SendMode Input
    
    SysGet, Mon1, MonitorWorkArea
    
    SetTimer, checkWindow, 100
    
    checkWindow:
        WinGetPos, WinX, WinY, WinWidth, WinHeight, A
    
        ;; Left
        if (WinX < Mon1Left) {
            WinMove, A, , Mon1Left, WinY, WinWidth + WinX, WinHeight
        }
        ;; Right
        else if (WinX + WinWidth > Mon1Right) {
            WinMove, A, , WinX, WinY, Mon1Right - WinX, WinHeight
        }
        ;; Top
        if (WinY < Mon1Top) {
            WinMove, A, , WinX, Mon1Top, WinWidth, WinHeight + WinY
        }
        ;; Bottom
        else if (WinY + WinHeight > Mon1Bottom) {
            WinMove, A, , WinX, WinY, WinWidth, Mon1Bottom - WinY
        }
    return
    

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

Три альтернативы, чтобы вы начали искать такие программы:

  • Базовая версия Windows — попробуйте Win+Leftи Win+rightили перетащите окно, пока курсор не коснется любой из четырех сторон монитора.
  • MaxTo — который позволяет вам определять области на экране (на нескольких мониторах), где вы можете привязывать окна (довольно дешево 19 долларов США)
  • AquaSnap — это инструмент перетаскивания и группировки, но он бесплатный и выглядит красиво.

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

Спасибо, Стив. Я хотел бы иметь возможность перемещать окно, но как только его нижняя граница достигает нижней части экрана, я хочу, чтобы окно начало изменять размер, а не двигаться.