Czy w Windows 7 można „przyciągnąć” górę / dół zamiast tylko w lewo / w prawo?

125

W systemie Windows 7 wiem, że możesz zrobić Windows+, Leftaby umieścić okno w lewej połowie ekranu. Czy jest jakaś funkcja, która działa na górze i na dole?

Abe Miessler
źródło
@RockPaperLizard Musisz także pamiętać, że Windows 7 jest naprawdę stary i jak dotąd jest jedynym systemem operacyjnym z natywną funkcją przyciągania. Muszę znaleźć na przykład skrypt typu „rozszerzenie” innej firmy, aby to zrobić na komputerze Mac. Ponadto system Windows 10 ma funkcję Snap dla każdego kierunku, w tym narożników! Innymi słowy, myślę, że zespół Windows naprawdę próbuje po stronie UX. Interfejs użytkownika jest czasem testem osobowości, ale interfejs użytkownika jest czymś, w czym Windows jest historycznie całkiem dobry.
Joseph Hansen
@Joseph Zgadzam się, że stwardnienie rozsiane odniosło wiele sukcesów na arenie UX. Byli nawet gotowi eksplorować nowe terytorium, choć nie były komercyjnie udane, z Microsoft Bob . Niestety ich sukcesom szkodzi wiele poważnych niepowodzeń, z których najbardziej zauważalnym jest Windows 8 . Nie wiem, czy porażką tego projektu był zespół UX, czy też odmowa kierownictwa ich wysłuchania.
RockPaperLizard

Odpowiedzi:

73

Nie. Jedynymi dostępnymi opcjami przyciągania są:

  • zatrzask lewej połowy ( Windows+ left)
  • przystawka z prawej połowy ( Windows+ right)
  • przyciąganie do pełnej wysokości ekranu ( Windows+ shift+ up)
  • zmaksymalizowane przyciąganie ( Windows+ up)
  • „un-snap” ( Windows+ down)
  • przyciągnij do następnego monitora / wyświetlacza ( Windows+ shift+ ( leftlub right))

Edycja: inne niesamowite kombinacje, które mogą Ci się spodobać:

  • minimalizuj wszystko ( Windows+ m)
  • minimalizuj wszystkie okna oprócz aktywnego ( Windows+ Home)
  • Aero peek (zobacz Pulpit, wszystkie okna stają się przezroczyste) ( Windows+ space)
Joseph Hansen
źródło
Zgrabne, próbowałem wymyślić, jak utrzymać pozycję pionową na stałym poziomie, ale zezwalaj na ruch poziomy bez użycia przyciągania ekranu w lewo / w prawo i konieczności dostosowania szerokości okna, a przyciąganie do pełnej wysokości ekranu robi dokładnie to, co chciałem.
JAB
4
Och, właśnie odkryłem, że dwukrotne kliknięcie górnej krawędzi paska tytułu (tj. Gdy wyświetlana jest pionowa strzałka z podwójnym zakończeniem) również przyciąga wysokość ekranu.
JAB
7
W Windows 10 jest teraz inna opcja: Po przyciągnięciu w lewo lub w prawo możesz nacisnąć uplub down, np., Aby przyciągnąć do lewego górnego rogu . Nie to, czego chciał PO, ale może być pomocne dla innych.
Andre
brak „przystawki pełnej szerokości ekranu?” -_-
Shayan
Dla downvoter jest to poprawna odpowiedź dla Windows 7. Windows 10 ma nowe opcje snap ...
Joseph Hansen
58

Aby to osiągnąć, wykonuję następujące kroki:

  1. Windows+ D(aby zminimalizować wszystkie okna)
  2. następnie za pomocą myszy umieść okna, które chcę ułożyć w ogólnym miejscu na każdym monitorze (nie przejmuj się ich zmianą)
  3. następnie kliknij prawym przyciskiem myszy pasek zadań i wybierz „Pokaż okna ułożone” z menu kontekstowego, a następnie przywróć wszystkie inne okna, które chcę

Uwaga: Musisz zminimalizować wszystkie okna, których nie chcesz układać w stos. Oto, co ma zrobić krok 1.

Nataniel
źródło
1
To jest naprawdę przydatne. Wiem o tym od czasu wygranej 98, ale tak naprawdę nigdy go nie użyłem w Win 7, ponieważ w Windows XP i wcześniejszych wersjach możesz wybrać przyciski paska zadań, aby wybrać, które okna mają być układane, ale to nie działa już w Windows 7, więc kiedy wybieram opcja spowoduje ułożenie wszystkich okien na ekranie. Blog technet: czy wiesz: pokaż okna ułożone w stos, kaskadowo lub obok siebie
phuclv
Jest to przydatne, ale spowoduje ułożenie wszystkich okien we wszystkich monitorach.
Lew
To nadal działa również w systemie Windows 10.
snickers10m
@Leo - i na wszystkich komputerach. Ciekawe :)
J Bryan Price
23

Napisałem mały skrypt AutoHotKey, aby przyciągać okna u góry iu dołu, ponieważ byłem również sfrustrowany tym. Możesz pobrać go z mojej strony internetowej: 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
Northben
źródło
Działa, ale otwiera także ekran startowy w systemie Windows 8.1. Jak rozwiązać ten problem?
Gabriel Hautclocq,
2
Właśnie to chciałem znaleźć. Dziękuję Ci! Zauważyłem, że polecenie nie zmienia szerokości okna. Czy jest jakiś sposób, aby automatycznie przejść na pełny ekran, kiedy przeskakuje w górę / w dół?
Alex P. Miller,
1
To nie działa dla mnie w systemie Windows 10. Mam 3 monitory, z których 2 są w trybie pionowym. Mówisz wyraźnie o 2 obszarach roboczych, nie jestem pewien, czy to jest przyczyną. Powinieneś również wspomnieć, jaką kombinację klawiszy powinieneś nacisnąć w tej odpowiedzi dla osób, które nie znają składni AHK
Joakim Söderberg
1
Działa tylko częściowo na moim systemie Windows 7 z jednym monitorem poziomym i jednym pionowym. Idealnie na monitorze poziomym, ale na pionowym wydaje się, że przyjmuje wysokość od poziomego.
hardmooth
21

WindowSpace zapewnia tę funkcjonalność. Aby zrobić to, o co prosisz:

  • Przejdź do karty „Przenoszenie i zmiana rozmiaru” w Settings
  • W polu „Górna krawędź” wybierz „Przenieś na górną stronę”
  • W polu „Dolna krawędź:” wybierz „Przenieś na dół”

Zrzut ekranu:

zrzut ekranu

Russell Davis
źródło
9
Czy w pewnym momencie wymagany jest klucz licencyjny o wartości 25 USD?
ruffin
2
Wolę AquaSnap (jest bezpłatny lub kosztuje 9 dolarów za wiele monitorów): youtube.com/watch?v=bOVOEebpiWc Ale od Windows 10 nie jest już potrzebny, ponieważ najważniejsze funkcje są teraz częścią systemu operacyjnego.
mgutt 12.12.2016
1
AquaSnap kosztuje teraz 18 USD (jeśli używasz wielu monitorów) i robi wiele rzeczy, których Win10 nie robi, takich jak przyciąganie u góry / u dołu i układanie płytek. Bardzo fajny.
isherwood
9

Obecnie nie mam przed sobą komputera z systemem Windows 7, ale od czasu Windows 95 (lub nawet wcześniej) istnieje możliwość układania okien w poziomie. Zminimalizuj wszystko oprócz dwóch okien, które chcesz wyświetlić u góry iu dołu, kliknij pasek zadań prawym przyciskiem myszy i wybierz opcję Układaj okna poziomo. Zmieni rozmiar każdego okna, aby zajął połowę pionowego obszaru ekranu. Nie jest to przydatne w przypadku pojedynczego okna, a jak stwierdzono w innej odpowiedzi, nie ma do niego skrótu klawiaturowego, ale czasami jest to przydatne.

Korekta: w systemie Windows 7 nazywa się to „Pokaż okna ułożone w stos”

rmart
źródło
8

Podobnie jak w Northben, napisałem również skrypt AutoHotKey, choć trochę inaczej, więc pomyślałem, że zasługuje na własną odpowiedź. Ten skrypt powinien działać z dowolną liczbą monitorów lub orientacji monitorów.

Polecenia są przypisane do Windows+ Ctrl+ Upi Downzamiast tego, Shiftaby nie kolidować z istniejącym Windows+ Shift+ Up.

Działa to podobnie do pełnego przyciągania wysokości ekranu ( Windows+ Shift+ Up), ponieważ okno zachowuje swoje położenie i szerokość w poziomie. Można to łatwo zmienić, aby działało podobnie do przyciągania lewej lub prawej połowy ( Windows+ Leftlub Right) poprzez odkomentowanie ; WinMaximize, Alinii. Jeśli chcesz zachować domyślne zachowanie, ale czasami korzystasz z zachowania połowy przyciągania, po prostu zmaksymalizuj okno przed przyciąganiem.

Działa z Windows 7 64-bit i 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)
Jason Clement
źródło
1
Chciałbym, żeby to zadziałało. Dostaję The following variable name contains an illegal character: "params*". Na razie używam skryptu @ northben
bity
Dzięki za ten skrypt. Super przydatne. Odkryłem, że nie załaduje się, dopóki nie usunę spacji między nazwą funkcji UpDownSnap a nawiasami.
Jason Dufair,
Może to także był problem z bitami powyżej. Co ciekawe, mój własny skrypt nie ma miejsca; Nie jestem pewien, jak się tam dostało. Usunąłem to, dzięki.
Jason Clement
Działa dobrze w systemie Windows 8.1 :-)
Gabriel Hautclocq
Dzięki @JasonClement za Twoje rozwiązanie. Naprawiłem błąd w twoim rozwiązaniu i opublikowałem jako kolejną odpowiedź.
Zee
7

Najlepszy program, jaki kiedykolwiek użyłem, który osiąga dokładnie to + więcej, to WinSplit Revolution: http://winsplit-revolution.com/

Bardzo go polecam, ponieważ jest niezwykle prosty w obsłudze, a nawet działa dobrze z wieloma monitorami.

Film demonstracyjny: http://winsplit-revolution.com/screenshots/videos-demos

Ta aplikacja jest bezpłatna i wydana na licencji Creative Commons Uznanie autorstwa-Użycie niekomercyjne-Bez utworów zależnych 3.0.

EDYTOWAĆ:

Wygląda na to, że WinSplit nie jest już dostępny, witryna została przejęta przez Digital Creations AS, która ma własną wersję tego typu oprogramowania i nie jest już darmowa

Marcin
źródło
Oprogramowanie jest nadal dostępne z Softonic i nadal działa cuda w systemie Windows 10 od aktualizacji 1809. en.softonic.com/download/winsplit-revolution/windows
JoeB
5

umieść swoje okna tak, jak chcesz -> kliknij prawym przyciskiem myszy pasek zadań -> „pokaż okna ułożone” -> zysk!

Clevboy
źródło
4

Jak sugeruje Deszcz tutaj , PowerResizer działa dobrze. Niezbyt konfigurowalny - nie można zmieniać skrótów klawiaturowych, ale jest to co najmniej open source. Jak zauważa JoeB, możesz nacisnąć je podczas przeciągania okna: W, aby przejść w górę, i Z, aby przejść w dół. A to ruch w lewo, S to ruch w prawo. Lub po prostu przeciągnij okno do krawędzi. Naciśnięcie 1,2,3 i 4 podczas przeciągania spowoduje ćwierć kroku do rogu. Jestem z tego zadowolony, wypróbuj.

leetNightshade
źródło
Właśnie wypróbowałem WindowSpace; jeśli nie masz nic przeciwko płaceniu 25 USD, jest to znacznie lepsze rozwiązanie.
leetNightshade
1
Jest dokumentacja! readme.txt w folderze instalacyjnym plików programu. Nie wspominając już o tym, że robi dokładnie to, czego chciałem, czyli pionowe wpięcie w pół. 1/4 przystawki są dodatkowym bonusem!
scaryman
3

Jeśli masz kartę graficzną AMD, możesz użyć „Hydravision”.

(1) Otwórz Centrum sterowania Catalyst (2) W „Pulpicie i wyświetlaczach” kliknij „Więcej ...” (3) W „Hydravision” kliknij „HydraGrid” (4) Zaznacz „Włącz HydraGrid” (5) Kliknij „Edytuj HydraGrid ”i umieść linie siatki tam, gdzie chcesz, np. w połowie wysokości pionowego monitora (6) Zastosuj

Teraz, gdy pracujesz z oknami, możesz kliknąć pasek tytułu prawym przyciskiem myszy i wybrać opcję „Dołącz do siatki”, a następnie przeciągnij go z miejsca na miejsce, a zostanie on przyciągnięty do siatki.

W tej konfiguracji używam monitorów 24x 3 "w trybie pionowym i jest to najszybszy sposób na przyciągnięcie okien do górnej i dolnej połowy każdego monitora.

Matt
źródło
1
Popełniłem błąd, instalując Catalyst Control Center, aby wypróbować Hydravision. Ten program to świnia i szukam innego rozwiązania.
dana
2

Sprawdź AquaSnap . Możesz przeciągnąć myszą zgodnie z oczekiwaniami, użyj Ctrl + Mysz, aby zmienić rozmiar dwóch okien sąsiadująco, oprócz wielu innych funkcji.

Zobacz niesamowite funkcje dokowania

Możesz także użyć szerokiej gamy skrótów klawiszowych. Ten program zastępuje kilka domyślnych ustawień systemu Windows, z których już jesteś przyzwyczajony, oprócz zmiany Win + Up i Win + Down dla doku na górę / dół.

Przykłady skrótów klawiszowych

WindowSpace działa, ale nie jest tak przyjemny i może się zawiesić na chwilę po naciśnięciu przycisku Zastosuj. Dla porównania, bezpłatna / próbna wersja Aquasnap Pro jest bardzo płynnym doświadczeniem.

leetNightshade
źródło
1

Istnieje wiele opcji zapewnianych przez system Windows, w tym STOSOWANIE, SIDE BY SIDE i KASKADOWANIE. Odbywa się to poprzez kliknięcie prawym przyciskiem myszy pustego obszaru na pasku zadań (zwykle na dole ekranu) i wybranie. Tak, to nie jest skrót klawiaturowy, ale jest dość blisko.

Nie ufaj mi, weź to prosto z pyska konia, Microsoft tutaj .

Na stronie znajduje się również wiele innych ciekawych ciekawostek - wiele z nich, niektóre z nich mogą być nowe. Mam nadzieję że to pomoże.

Scott Biggs
źródło
1

Istnieje sposób, aby uzyskać tę funkcjonalność bez użycia narzędzi zewnętrznych, ale AFAIK:

  • Wymaga użycia myszy
  • Działa tylko dla dwóch okien.

Przepis jest następujący:

  1. Przyciągaj okna obok siebie w zwykły sposób.
  2. Naciśnij, Win+Downaby jedno z okien zajmowało jedną czwartą ekranu
  3. Wybierz drugie okno i naciśnij, Win+Upaby drugie okno zajęło przeciwległą ćwiartkę ekranu
  4. Użyj myszki, aby chwycić krawędź okna i zmienić rozmiar do krawędzi ekranu, maksymalizując w ten sposób szerokość każdego okna bez zmiany wysokości.
Lew
źródło
Dobra wskazówka, ale za każdym razem jest mnóstwo pracy.
11101101b
1

Naprawiono błąd w rozwiązaniu Jasona Clementa. Kiedy okno zatrzaśnie się pionowo, poprzednio nie zajmowałoby ono także szerokości monitora. Po prostu pozostanie na bieżącej szerokości okna, ale przyciągnie do 1/2 monitora w pionie. Dzięki tej poprawce przyciąga do 50% wysokości w pionie w górę lub w dół i 100% w poziomie szerokości monitora.

Również dla tych, którzy mogą nie znać AHK ...

  1. Pobierz AutoHotKey
  2. Utwórz plik tekstowy w notatniku. Wklej do niego kod. Zapisz go z poprawnym rozszerzeniem dla AutoHotKey, np. „VerticalSnap.ahk”
  3. Kliknij plik prawym przyciskiem myszy w Eksploratorze, wybierz „Skompiluj skrypt”
  4. Kompilacja powinna utworzyć plik „VerticalSnap.exe” w tym katalogu.
  5. Otwórz run.exe, wpisz „shell: startup” i naciśnij Enter.
  6. Nowe okno Eksploratora powinno otworzyć się do folderu Autostart.
  7. Skopiuj / wklej plik .exe do tego folderu Autostart.
  8. Przy następnym uruchomieniu ten skrypt powinien być uruchomiony. Możesz użyć CRTL + WINDOWS + UPARROW lub + DOWNARROW, aby przyciągnąć do górnej części dolnej połowy monitora. Pamiętaj, że okno nie może być zmaksymalizowane, aby to działało.

Mam nadzieję, że to pomaga i dziękuję Jasonowi!

;-------------------------------------------------------------------;
; 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)
Zee
źródło
0

Przydatną opcją jest podzielenie monitorów na wirtualne połówki za pomocą DisplayFusion . Konfigurujesz to, wykonując następujące czynności:

  • Kliknij prawym przyciskiem myszy ikonę DisplayFusion znajdującą się w obszarze powiadomień i przejdź do Monitor Configuration.
  • Wybierz monitor, który chcesz skonfigurować.
  • Dodaj a vertical splitdo monitora. (Możesz się tym pobawić i jeszcze bardziej podzielić swoje monitory).

Po włączeniu tej opcji powinieneś być w stanie używać klawiszy Windows+ Arrowdo poruszania się po oknie, aby zmaksymalizować ten nowy pionowo podzielony obszar monitora. Zaraz uruchomię moje dwa monitory 1920x1200 w trybie pionowym, gdy tylko moje 30 "wejdzie i konieczne będzie przyciąganie okien w pionie.

Jmac
źródło
0

Musiałem wielokrotnie dzielić dwa górne i dolne okna przeglądarki Windows w systemie Windows 10 za pomocą konfiguracji z wieloma monitorami z wieloma innymi otwartymi oknami. Mógłby to zrobić ręcznie, ale potrzebował lepszego rozwiązania.

Odkryłem, że rozszerzenie Chrome „Zmiana rozmiaru karty - Podział układów ekranu” bardzo mi to ułatwiło.

Wystarczy otworzyć nowe okno Chrome, kliknąć ikonę rozszerzenia Tab Resize, wybrać opcję 2x1. Miło i łatwo.

Jeff
źródło
1
Wygląda na to, że osoba, która zadała pytanie, chciała rozwiązania, które działa we wszystkich programach, nie tylko w Chrome. Czy masz coś, co to robi?
Ben N
0

Jeśli używasz monitora Dell, możesz zainstalować Dell Display Manager, który ma opcje podziału wyświetlacza na siatkę.

Następnie możesz przeciągnąć okno do komórki, przytrzymując klawisz Shift.

Michael Zheng
źródło