Возможно ли в Windows 7 "закрепить" сверху/снизу, а не просто налево/справа?
Я знаю, что в Windows 7 можно сделать Windows + Left, чтобы поместить окно в левую половину экрана. Есть ли функция, которая будет делать сверху и снизу?
Я знаю, что в Windows 7 можно сделать Windows + Left, чтобы поместить окно в левую половину экрана. Есть ли функция, которая будет делать сверху и снизу?
Нет. Единственные доступные варианты защелкивания:
Редактирование: другие удивительные комбинации, которые вам могут понравиться:
Я использую следующие шаги для этого:
Примечание: Вы должны минимизировать все окна, которые вы не хотите складывать в стек. Это то, для чего предназначен шаг 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
Скриншот:
Подобно northben, я также написал сценарий AutoHotKey, хотя немного по-другому, так что я думал, что он заслуживает своего собственного ответа. Этот скрипт должен работать с любым количеством мониторов или ориентаций монитора.
Команды привязываются к Windows + Ctrl + Вверх и Вниз вместо Shift, чтобы не мешать существующим Windows + Shift + Вверх.
Это работает аналогично полноэкранной привязке по высоте (Windows + Shift + Up) в том, что окно сохраняет горизонтальное положение и ширину. Это можно легко изменить, чтобы работать аналогично левой половинной или правой половинной привязке (Windows + Left или Right), не комментируя линию ; WinMaximize, A
. Если вы хотите сохранить поведение по умолчанию, но иногда используете поведение половинной привязки, просто увеличьте окно до выполнения привязки.
Работает с Windows 7 64-битной и 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)
В настоящее время у меня нет машины windows 7, но с тех пор, как Windows 95 (или даже раньше, возможно), появилась возможность плитки окон по горизонтали. Минимизируйте все, кроме двух окон, которые вы хотите просматривать сверху и снизу, щелкните правой кнопкой мыши на панели задач и выберите Tile Windows по горизонтали. Размер каждого окна будет равен половине вертикальной области экрана. Это бесполезно делать с одним окном, и, как было сказано в другом ответе, для него нет клавиатурной комбинации, но иногда я нахожу это удобным.
Исправление: в Windows 7 это называется “Показывать окна в стеке”.
Лучшая программа, которую я когда-либо использовал, которая достигает именно этого + больше является WinSplit Revolution: http://winsplit-revolution.com/
Я настоятельно рекомендую ее, так как она чрезвычайно проста в использовании и даже хорошо работает с несколькими мониторами.
Демо-видео: http://winsplit-revolution.com/screenshots/videos-demos
Это приложение является бесплатным и выпущено в рамках Creative Commons Attribution-Non Commercial-No Derivative Works 3.0.
EDIT:
Похоже, что WinSplit больше не доступен, вебсайт перешел к компании Digital Creations AS, у которой есть своя версия этого типа программного обеспечения, и она больше не бесплатна .
Как предложил Рейн здесь , PowerResizer работает хорошо. Не очень настраиваемый - вы не можете менять клавиатурные сокращения, но, по крайней мере, с открытым исходным кодом. Как отмечает JoeB, их можно нажимать во время перетаскивания окна: W - двигаться вверх, а Z - вниз. A - это перемещение влево, S - вправо. Или просто перетащить окно к краю. Нажав 1,2,3 и 4 во время перетаскивания, вы сделаете четверть привязки к углу. Я счастлив с этим, попробуйте.
Исправлена ошибка в решении Джейсона Клемента. Когда окно щелкает по вертикали, ранее оно не занимало и ширину монитора. Оно просто оставалось на текущей ширине окна, а по вертикали защелкивалось на ½ монитора. С помощью этого фиксатора он защелкивается на 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)
Если у вас есть видеокарта AMD, вы можете использовать “Hydravision”.
(1) Откройте Центр управления катализатором (2) В разделе “Рабочий стол и дисплеи” нажмите кнопку “Подробнее…”. (3) В разделе “Hydravision” нажмите кнопку “HydraGrid” (4) Проверьте “Включить HydraGrid” (5) Нажмите “Редактировать HydraGrid” и поместите линии сетки туда, где вы хотите, например, на полпути вверх портретного монитора (6) Применить 0x2 и 0x2 и Теперь, когда вы работаете с окнами, вы можете щелкнуть правой кнопкой мыши на строке заголовка и выбрать “Прикрепить к сетке”, затем перетащите его с места на место, и он будет привязываться к сетке.
Я работаю 3x1 24 “мониторы в портретном режиме с этой установкой, и это самый быстрый способ, который я нашел, чтобы оснастить окна в верхней и нижней половине каждого монитора.
Проверьте AquaSnap . Вы можете перетаскивать мышь, как и ожидалось, использовать Ctrl+Mouse для изменения размера двух плиточных окон одновременно, помимо множества других функций.
Вы также можете использовать большое количество горячих клавиш. Эта программа переопределяет несколько значений по умолчанию Windows, к которым вы уже привыкли, а также заменяет Win+Up и Win+Down для причала на верхний/нижний.
WindowSpace работает, но не так хорошо, и может повесить трубку на некоторое время, когда вы нажмете кнопку “Применить”. Для сравнения, бесплатная/пробная версия Aquasnap Pro - это очень гладкий опыт.
Есть много опций, предоставляемых Windows, включая STACKING, SIDE BY SIDE и CASCADING. Они выполняются щелчком правой кнопкой мыши на пустой области панели задач (обычно в нижней части экрана) и выбором. Да, это не клавиатурное сокращение, но оно довольно близко.
Не доверяйте мне, получите это прямо изо рта лошади, Microsoft здесь .
Также на сайте есть много других приятных лакомых кусочков - многие из которых, как вы знаете, могут быть новыми. Надеюсь, это поможет.
Для достижения этой функциональности есть сторонний способ, но AFAIK:
Работает только для двух окон.
Рецепт есть:
Win+Down
, чтобы одно из окон заняло четверть экрана Win+Up
, чтобы другое окно заняло противоположную четверть экрана Это зависит от торговой марки и означает использование мыши вместо клавиатуры, но если вы используете мониторы Dell, вы можете использовать Dell Display Manager (бесплатно).
Он позволяет вам разделять каждый монитор так, как вы хотите (2x1, 2x2, 4x2, как угодно), а затем вы фиксируете окна на месте в любом сегменте. Я использую его уже несколько лет, и он действительно хорош.
Оконная панель очень легкая и справляется с этим довольно хорошо.
Это автономный exe, вы запускаете его после загрузки, затем клавиша windows + нумпад максимизирует до различных четвертей и половин. Или, если у вас нет нумпада, то capslock + область WASD. 0x2 и [ https://autohotkey.com/board/topic/19990-windowpad-window-moving-tool/ ]0x3 и [ https://autohotkey.com/board/topic/19990-windowpad-window-moving-tool/ ]0x3 и [ Skipped item nr. 2 ]
Если вы используете монитор Dell, вы можете установить диспетчер Dell Display Manager, который имеет опции для разделения дисплея на сетку.
Затем вы можете перетащить окно в ячейку, удерживая нажатой клавишу Shift.
Мне нужно было многократно разделить два браузера Windows сверху и снизу в Windows 10 с настройкой мультимонитора с большим количеством других окон, уже открытых. Можно было сделать это вручную, но хотелось лучшего решения.
я нашел расширение Chrome “Tab Resize - Split Screen Layouts” (Размер вкладки - Разметка разделенного экрана), которое сделало это супер простым для меня.
Просто откройте новое окно Chrome, нажмите на иконку расширения Tab Resize, выберите опцию 2x1. Теперь все просто и приятно.
Опция, которую я нашел полезной, это разделение ваших мониторов на виртуальные половины с помощью DisplayFusion . Вы настраиваете это, делая следующее:
Monitor Configuration
. vertical split
к монитору. (Вы можете играть с этим и разделить ваши мониторы еще больше.) 0x2 и 0x2 & С этой включенной, вы должны быть в состоянии использовать ваши Windows + клавиши со стрелками для навигации по вашему окну, чтобы максимизировать в этой новой вертикально разделенной области вашего монитора. Я собираюсь запустить два моих монитора 1920x1200 в портретном режиме, как только мой 30-дюймовый монитор появится, и вертикальное разделение окон будет необходимо.