В Windows 7 я знаю, что вы можете сделать Windows+, Leftчтобы поместить окно в левую половину экрана. Есть ли функция, которая будет делать сверху и снизу?
В Windows 7 я знаю, что вы можете сделать Windows+, Leftчтобы поместить окно в левую половину экрана. Есть ли функция, которая будет делать сверху и снизу?
Ответы:
Нет. Доступны только следующие варианты привязки:
Изменить: другие удивительные комбинации, которые вам могут понравиться:
up
или down
, например, чтобы привязаться к верхнему левому углу . Не то, что хотел ОП, но может быть полезно для других.
Я использую следующие шаги для достижения этой цели:
Примечание: вы должны свернуть все окна, которые вы не хотите сложить. Это то, для чего предназначен шаг 1.
Я написал небольшой скрипт AutoHotKey для привязки окон сверху и снизу, потому что я тоже был разочарован этим. Вы можете скачать его с моего сайта: http://www.pixelchef.net/how-snap-windows-horizontally-windows-7
; Move window up (Windows + Shift + UP ... NOTE must maximize window first)
+#Up::
WinGetPos,X,Y,W,H,A,,,
WinMaximize
WinGetPos,TX,TY,TW,TH,ahk_class Shell_TrayWnd,,,
; if this is greater than 1, we're on the secondary (right) monitor. This
; means the center of the active window is a positive X coordinate
if ( X + W/2 > 0 ) {
SysGet, MonitorWorkArea, MonitorWorkArea, 1
WinMove,A,,X,0 , , (MonitorWorkAreaBottom/2)
}
else {
SysGet, MonitorWorkArea, MonitorWorkArea, 2
WinMove,A,,X,0 , , (MonitorWorkAreaBottom/2)
}
return
; Move window down (Windows + Shift + DOWN ... NOTE must maximize window first)
+#Down::
WinGetPos,X,Y,W,H,A,,,
WinMaximize
WinGetPos,TX,TY,TW,TH,ahk_class Shell_TrayWnd,,,
; if this is greater than 1, we're on the secondary (right) monitor. This
; means the center of the active window is a positive X coordinate
if ( X + W/2 > 0 ) {
SysGet, MonitorWorkArea, MonitorWorkArea, 1
WinMove,A,,X,MonitorWorkAreaBottom/2 , , (MonitorWorkAreaBottom/2)
}
else {
SysGet, MonitorWorkArea, MonitorWorkArea, 2
WinMove,A,,X,MonitorWorkAreaBottom/2 , , (MonitorWorkAreaBottom/2)
}
return
WindowSpace обеспечивает эту функциональность. Чтобы сделать то, что вы просите:
Settings
Скриншот:
В настоящее время передо мной нет машины с Windows 7, но начиная с Windows 95 (или даже раньше, возможно), появилась возможность размещать окна по горизонтали. Сверните все, кроме двух окон, которые вы хотите просмотреть сверху и снизу, щелкните правой кнопкой мыши панель задач и выберите Tile Windows по горизонтали. Размер каждого окна будет занимать половину вертикальной области экрана. Это бесполезно делать с одним окном, и, как говорится в другом ответе, для него нет сочетания клавиш, но иногда я нахожу его удобным.
Исправление: в Windows 7 это называется «Показать окна в стеке»
Как и в случае с Northben, я также написал скрипт AutoHotKey, хотя и немного по-другому, поэтому я подумал, что он заслуживает своего собственного ответа. Этот скрипт должен работать с любым количеством мониторов или ориентаций мониторов.
Команды связаны с Windows+ Ctrl+ Upи Downвместо того , Shiftчтобы не мешать существующий Windows+ Shift+ Up.
Это работает аналогично полноэкранной привязке к высоте ( Windows+ Shift+ Up) в том, что окно сохраняет свою горизонтальную позицию и ширину. Это можно легко изменить, чтобы он работал аналогично левой или правой половине ( Windows+ Leftили Right), раскомментировав ; WinMaximize, A
строку. Если вы хотите сохранить поведение по умолчанию, но иногда используете поведение с половинной привязкой, просто разверните окно перед привязкой.
Работает с Windows 7 64-bit и AutoHotKey v1.1.14.03.
;-------------------------------------------------------------------;
; Returns the maximum or minimum value for any number of inputs
; i.e. Max(5,4,7,10) will return 10
;-------------------------------------------------------------------;
Min(params*)
{
r := params[1]
for index, param in params
if (param < r)
r := param
return r
}
Max(params*)
{
r := params[1]
for index, param in params
if (param > r)
r := param
return r
}
;-------------------------------------------------------------------;
; WindowsKey+Ctrl+Up / WindowsKey+Ctrl+Down
; Resizes window to half the screen height and moves it to the top
; or bottom of whichever screen has the largest overlap.
; By default, the window retains its horizontal (x) position and
; width. To change this, uncomment the WinMaximize line.
;-------------------------------------------------------------------;
UpDownSnap(Direction)
{
; WinMaximize, A
WinGetPos, x, y, w, h, a, , ,
SysGet , Count, MonitorCount
refArea := 0
Loop, %count%
{
SysGet, m, MonitorWorkArea, %A_Index%
xo := Max(0, Min(x + w, mRight) - Max(x, mLeft))
yo := Max(0, Min(y + h, mBottom) - Max(y, mTop))
area := xo * yo
if (area > refArea)
{
monTop := mTop
monBottom := mBottom
refArea := area
}
}
; If the refArea is still equal to 0, the window does
; not overlap with any monitors. Wat?
if (refArea > 0)
{
if (direction = 1)
newY := monTop
Else
newY := (monBottom - monTop) / 2 + monTop
WinMove , a, , x, newY, w, (monBottom - monTop) / 2
}
}
^#Up::UpDownSnap(1)
^#Down::UpDownSnap(0)
The following variable name contains an illegal character: "params*"
. Пока я использую скрипт @ northben
Лучшая программа, которую я когда-либо использовал, которая выполняет именно это и многое другое, - это WinSplit Revolution: http://winsplit-revolution.com/
Я настоятельно рекомендую его, поскольку он чрезвычайно прост в использовании и хорошо работает даже с несколькими мониторами.
Демонстрационное видео: http://winsplit-revolution.com/screenshots/videos-demos
Это приложение является бесплатным и выпущено в соответствии с Creative Commons Attribution-Non Commercial-No Derivative Works 3.0.
РЕДАКТИРОВАТЬ:
Похоже, что WinSplit больше не доступен, веб-сайт перешел во владение Digital Creations AS, которая имеет собственную версию этого типа программного обеспечения и больше не является бесплатной.
Как предложил здесь Rain , PowerResizer работает хорошо. Не очень настраиваемый - вы не можете изменить сочетания клавиш, но это по крайней мере с открытым исходным кодом. Как отмечает JoeB, вы можете нажимать их при перетаскивании окна: W для перемещения вверх и Z для перемещения вниз. A - двигаться влево, S - двигаться вправо. Или просто перетащите окно к краю. Нажатие 1,2,3 и 4 при перетаскивании приведет к четверти привязки к углу. Я счастлив, попробуй.
Если у вас есть видеокарта AMD, вы можете использовать «Hydravision».
(1) Откройте Центр управления Catalyst (2) В разделе «Рабочий стол и дисплеи» нажмите «Еще ...» (3) В разделе «Hydravision» нажмите «HydraGrid» (4) Установите флажок «Включить HydraGrid» (5) Нажмите «Редактировать HydraGrid» "и поместите линии сетки, где вы хотите, например, наполовину на портретном мониторе (6) Применить
Теперь, когда вы работаете с окнами, вы можете щелкнуть правой кнопкой мыши на строке заголовка и выбрать «Присоединить к сетке», затем перетащить его с места на место, и он будет привязан к сетке.
Я использую 3х1 24 "мониторы в портретном режиме с этой настройкой, и это самый быстрый способ привязать окна к верхней и нижней половине каждого монитора.
Проверьте AquaSnap . Вы можете перетаскивать мышью, как и ожидалось, используйте Ctrl + Mouse, чтобы изменить размеры двух плиточных окон одновременно, помимо множества других функций.
Вы также можете использовать самые разные горячие клавиши. Эта программа переопределяет некоторые настройки Windows по умолчанию, которые вы уже привыкли использовать, кроме изменения Win + Up и Win + Down для дока вверх / вниз.
WindowSpace работает, но не так хорошо, и может на некоторое время зависнуть, когда вы нажмете применить. Для сравнения, бесплатная / пробная версия Aquasnap Pro очень удобна.
Windows предлагает множество опций, включая STACKING, SIDE BY SIDE и CASCADING. Это можно сделать, щелкнув правой кнопкой мыши пустую область на панели задач (обычно в нижней части экрана) и выбрав. Да, это не сочетание клавиш, но оно довольно близко.
Не верь мне, получи это прямо изо рта лошади, Microsoft здесь .
Также на сайте есть много других приятных моментов - многие, которые вы знаете, некоторые могут быть новыми. Надеюсь это поможет.
Существует сторонний способ для достижения этой функциональности, но AFAIK:
Рецепт:
Win+Down
чтобы одно из окон заняло четверть экранаWin+Up
чтобы другое окно заняло противоположную четверть экранаИсправлена ошибка в решении Джейсона Клемента. Когда окно защелкивается вертикально, ранее оно также не занимало бы ширину монитора. Он останется с текущей шириной окна, но будет привязан к 1/2 монитора по вертикали. С этим исправлением он фиксирует вертикальную высоту 50% вверх или вниз и горизонтальную ширину монитора 100%.
Кроме того, для тех, кто может не знать AHK ...
Надеюсь, это поможет, и спасибо Джейсон!
;-------------------------------------------------------------------;
; Returns the maximum or minimum value for any number of inputs
; i.e. Max(5,4,7,10) will return 10
;-------------------------------------------------------------------;
Min(params*)
{
r := params[1]
for index, param in params
if (param < r)
r := param
return r
}
Max(params*)
{
r := params[1]
for index, param in params
if (param > r)
r := param
return r
}
;-------------------------------------------------------------------;
; WindowsKey+Ctrl+Up / WindowsKey+Ctrl+Down
; Resizes window to half the screen height and moves it to the top
; or bottom of whichever screen has the largest overlap.
; By default, the window retains its horizontal (x) position and
; width. To change this, uncomment the WinMaximize line.
;-------------------------------------------------------------------;
UpDownSnap(Direction)
{
; WinMaximize, A
WinGetPos, x, y, w, h, a, , ,
SysGet , Count, MonitorCount
refArea := 0
Loop, %count%
{
SysGet, m, MonitorWorkArea, %A_Index%
xo := Max(0, Min(x + w, mRight) - Max(x, mLeft))
yo := Max(0, Min(y + h, mBottom) - Max(y, mTop))
area := xo * yo
if (area > refArea)
{
monTop := mTop
monBottom := mBottom
monLeft := mLeft
monRight := mRight
refArea := area
}
}
; If the refArea is still equal to 0, the window does
; not overlap with any monitors. Wat?
if (refArea > 0)
{
if (direction = 1)
newY := monTop
Else
newY := (monBottom - monTop) / 2 + monTop
WinMove , a, , monLeft, newY, (monRight - monLeft), (monBottom - monTop) / 2
}
}
^#Up::UpDownSnap(1)
^#Down::UpDownSnap(0)
Опция, которая показалась мне полезной, - это разделить ваши мониторы на виртуальные половины с помощью DisplayFusion . Вы настраиваете это следующим образом:
Monitor Configuration
.vertical split
к монитору. (Вы можете поиграть с этим и разделить свои мониторы еще больше.)Когда эта опция включена, вы должны иметь возможность использовать клавиши Windows+ Arrowдля перемещения по окну, чтобы развернуть эту новую вертикально разделенную область монитора. Я собираюсь запустить два моих монитора 1920x1200 в портретном режиме, как только появятся мои 30 ", и потребуется вертикальная привязка окон.
Мне нужно было несколько раз разделить два верхних и нижних окна браузера в Windows 10 с настройкой нескольких мониторов с множеством других уже открытых окон. Мог сделать это вручную, но хотел лучшего решения.
Я обнаружил, что расширение Chrome "Tab Resize - Split Screen Layouts" сделало это очень простым для меня.
Просто откройте новое окно Chrome, щелкните значок расширения вкладки «Изменить размер», выберите вариант 2x1. Красиво и просто сейчас.
Если вы используете монитор Dell, вы можете установить Dell Display Manager, у которого есть опции для разделения дисплея на сетку.
Затем вы можете перетащить окно в ячейку, удерживая клавишу Shift.