Возможно «привязать» верх / низ вместо просто влево / вправо в Windows 7?

102588
Abe Miessler

В Windows 7 я знаю, что вы можете сделать Windows+, Leftчтобы поместить окно в левую половину экрана. Есть ли функция, которая будет делать сверху и снизу?

107
@RockPaperLizard Вы также должны помнить, что Windows 7 действительно старая и на сегодняшний день является единственной ОС, имеющей встроенную функцию привязки. Мне нужно найти сторонний скрипт типа «расширение», чтобы сделать это, например, на Mac. Кроме того, в Windows 10 есть Snap для любого направления, включая углы! Другими словами, я думаю, что команда Windows действительно пытается на стороне UX. Пользовательский интерфейс иногда является личностным тестом, но UX - это то, в чем исторически Windows хороша. Joseph Hansen 7 лет назад 0
@ Джозеф Я действительно согласен с тем, что MS добилась многих успехов на арене UX. Они даже были готовы исследовать новую территорию, хотя и не были коммерчески успешными, с *** Microsoft Bob ***. К сожалению, их успехи омрачены многими серьезными неудачами, наиболее заметным из которых является Windows 8 ***. Я не знаю, был ли провал этого проекта их командой UX или отказ руководства выслушать их. RockPaperLizard 7 лет назад 0

17 ответов на вопрос

69
Joseph Hansen

Нет. Доступны только следующие варианты привязки:

  • левая половина оснастки ( Windows+ left)
  • правая половина оснастки ( Windows+ right)
  • полная высота экрана ( Windows+ shift+ up)
  • максимальная оснастка ( Windows+ up)
  • "открепить" ( Windows+ down)
  • привязка к следующему монитору / дисплею ( Windows+ shift+ ( leftили right))

Редактировать: другие удивительные комбинации, которые могут вам понравиться:

  • минимизировать все ( Windows+ m)
  • свернуть все, кроме активного окна ( Windows+ Home)
  • Aero peek (просмотр рабочего стола, все окна становятся прозрачными) ( Windows+ space)
Аккуратно, я пытался выяснить, как сохранить вертикальное положение фиксированным, но разрешить горизонтальное перемещение, не используя левую / правую привязку экрана и не перенастраивая ширину окна, а полная привязка высоты экрана делает именно то, что я хотел. JAB 10 лет назад 0
О, только что обнаружил, что двойной щелчок по верхнему краю строки заголовка (т. Е. Когда отображается вертикальная двусторонняя стрелка) также делает привязку к высоте экрана. JAB 10 лет назад 4
В Windows 10 теперь есть еще один вариант: после привязки влево или вправо, вы можете нажать «вверх» или «вниз», например, чтобы привязаться к «верхнему левому» *. Не то, что хотел ОП, но может быть полезно для других. Andre 7 лет назад 6
49
Nathaniel

Я использую следующие шаги для достижения этой цели:

  1. Windows+ D(чтобы свернуть все окна)
  2. затем с помощью мыши разместите окна, которые я хочу разместить, в общем расположении на каждом мониторе (не меняйте их размер)
  3. затем щелкните правой кнопкой мыши на панели задач и выберите «Показать окна в стеке» из контекстного меню, затем восстановите все другие окна, которые я хочу

Примечание: вы должны свернуть все окна, которые вы не хотите сложить. Это то, для чего предназначен шаг 1.

Это действительно полезно. Я знаю это с win 98, но на самом деле я никогда не использовал его в win 7, потому что в win XP и предыдущих версиях вы можете выбирать кнопки панели задач, чтобы выбирать, какие окна складывать, но это больше не работает в Windows 7, поэтому, когда я выбираю опция будет складывать все окна на экране. [Техника блога: знаете ли вы: показывать окна сложенными, каскадными или рядом друг с другом] (https://blogs.technet.microsoft.com/drey/2009/10/05/did-you-know-show-windows-stacked -cascaded или-бок о бок /) phuclv 7 лет назад 0
Это полезно, но оно будет складывать все окна во всех мониторах. Leo 7 лет назад 0
Это по-прежнему работает и для Windows 10. snickers10m 6 лет назад 0
@Leo - и на всех компьютерах тоже. Интересно :) J Bryan Price 5 лет назад 0
23
northben

Я написал небольшой скрипт 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 
Это работает, но также открывает стартовый экран в Windows 8.1. Как решить эту проблему? Gabriel Hautclocq 8 лет назад 0
Это именно то, что я надеялся найти. Спасибо! Я заметил, что команда не меняет ширину окна. Есть ли способ автоматически переходить к полноэкранной ширине, когда она щелкает вверх / вниз? Alex P. Miller 8 лет назад 2
Это не работает для меня на Windows 10. У меня есть 3 монитора, которые из 2 находятся в вертикальном режиме. Вы явно говорите о двух рабочих областях, но не уверены, что это причина. Также вы должны указать, какую ключевую комбинацию вы должны нажать в этом ответе для людей, которые не знают синтаксис AHK. Joakim Söderberg 8 лет назад 1
Он работает только частично на моем Windows 7 с одним горизонтальным и одним вертикальным монитором. Отлично на горизонтальном мониторе, но на вертикальном, кажется, берет высоту от горизонтального. hardmooth 7 лет назад 1
20
Russell Davis

WindowSpace обеспечивает эту функциональность. Чтобы сделать то, что вы просите:

  • Перейдите на вкладку «Перемещение и изменение размера» в Settings
  • Для «Верхний край:» выберите «Переместить в верхнюю часть».
  • Для «Нижний край:» выберите «Переместить на нижнюю сторону».

Скриншот:

screenshot

Требуется ли в какой-то момент лицензионный ключ за 25 долларов? ruffin 8 лет назад 9
Я предпочитаю AquaSnap (он бесплатный или стоит 9 долларов за мульти-монитор): https://www.youtube.com/watch?v=bOVOEebpiWc Но поскольку Windows 10 больше не нужна, потому что наиболее важные функции являются частью ОС, теперь , mgutt 7 лет назад 1
AquaSnap теперь стоит 18 долларов (если вы используете несколько мониторов), и он делает много вещей, которых нет в Win10, таких как привязка сверху / снизу и мозаика. Очень круто. isherwood 5 лет назад 0
9
rmart

В настоящее время передо мной нет машины с Windows 7, но начиная с Windows 95 (или даже раньше, возможно), появилась возможность размещать окна по горизонтали. Сверните все, кроме двух окон, которые вы хотите просмотреть сверху и снизу, щелкните правой кнопкой мыши панель задач и выберите Tile Windows по горизонтали. Размер каждого окна будет занимать половину вертикальной области экрана. Это бесполезно делать с одним окном, и, как говорится в другом ответе, для него нет сочетания клавиш, но иногда я нахожу его удобным.

Исправление: в Windows 7 это называется «Показать окна в стеке»

7
Marcin

Лучшая программа, которую я когда-либо использовал, которая выполняет именно это и многое другое - это 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, которая имеет собственную версию этого типа программного обеспечения и больше не является бесплатной.

7
Jason Clement

Как и в случае с 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) 
Я хотел бы, чтобы это сработало. Я получаю `Следующее имя переменной содержит недопустимый символ:" params * "`. Сейчас я использую скрипт @ northben bits 9 лет назад 1
Спасибо за этот скрипт. Супер полезно. Я обнаружил, что он не загрузится, пока не уберу пробел между именем функции UpDownSnap и круглыми скобками. Jason Dufair 8 лет назад 0
Может быть, это была проблема с битами выше. Интересно, что мой собственный сценарий не имеет места; Я не уверен, как он туда попал. Я удалил это, спасибо. Jason Clement 8 лет назад 0
Хорошо работает в Windows 8.1 :-) Gabriel Hautclocq 8 лет назад 0
Спасибо @JasonClement за ваше решение. Я исправил ошибку в вашем решении и опубликовал в качестве другого ответа. Zee 6 лет назад 0
@ Zee Это на самом деле не было ошибкой, я разработал это таким образом. Чтобы изменить, все, что вам нужно было сделать, это раскомментировать `; WinMaximize, A` line. Jason Clement 6 лет назад 0
@JasonClement, если вы раскомментируете эту строку, она развернется на весь монитор (как обычный старый максимизировать). Мое решение только максимизирует ширину, сохраняя 50% высоты. Zee 6 лет назад 0
5
clevboy

Разместите ваши окна примерно так, как вы хотите -> щелкните правой кнопкой мыши на панели задач -> "Показать окна в стеке" -> прибыль!

4
leetNightshade

As Rain suggested here, PowerResizer works well. Not very customizable - you can't change keyboard shortcuts, but it's at least open source. As JoeB notes, you can press these while dragging a window: W to move up, and Z to move down. A is to move to the left, S to move to the right. Or just drag the window to the edge. Pressing 1,2,3, and 4 while dragging will do a quarter snap to a corner. I'm happy with it, try it out.

Я только что попробовал WindowSpace; если вы не возражаете заплатить 25 долларов, это гораздо лучшее решение. leetNightshade 9 лет назад 0
Там есть документация! readme.txt в папке установки файлов программы. Не говоря уже о том, что он делает именно то, что я хотел, а это была вертикальная половина оснастки. 1/4 оснастки - дополнительный бонус! scaryman 9 лет назад 1
3
Matt

Если у вас есть видеокарта AMD, вы можете использовать «Hydravision».

(1) Откройте Центр управления Catalyst (2) В разделе «Рабочий стол и дисплеи» нажмите «Еще ...» (3) В разделе «Hydravision» нажмите «HydraGrid» (4) Установите флажок «Включить HydraGrid» (5) Нажмите «Изменить HydraGrid» "и поместите линии сетки, где вы хотите, например, наполовину вверх портретный монитор (6) Применить

Теперь, когда вы работаете с окнами, вы можете щелкнуть правой кнопкой мыши на строке заголовка и выбрать «Присоединить к сетке», затем перетащить его с места на место, и он будет привязан к сетке.

Я запускаю 3х1 24 "мониторы в портретном режиме с этой настройкой, и это самый быстрый способ, которым я нашел, чтобы привязать окна к верхней и нижней половине каждого монитора.

Я сделал ошибку, установив Catalyst Control Center, чтобы опробовать Hydravision. Эта программа - боров, и я ищу другое решение. dana 11 лет назад 1