Czy można "pstryknąć" góra/dół zamiast tylko lewo/prawo w Windows 7?
W Windows 7, wiem, że możesz zrobić Windows + Lewo, aby umieścić okno w lewej połowie ekranu. Czy istnieje funkcja, która zrobi górę i dół?
W Windows 7, wiem, że możesz zrobić Windows + Lewo, aby umieścić okno w lewej połowie ekranu. Czy istnieje funkcja, która zrobi górę i dół?
Nie. Jedyne dostępne opcje przyciągania to:
Edycja: inne niesamowite kombinacje, które możesz polubić:
Używam następujących kroków, aby to osiągnąć:
Uwaga: Musisz zminimalizować wszystkie okna, których nie chcesz ułożyć w stos. To jest to, co krok 1 jest przeznaczony do zrobienia.
Napisałem mały skrypt AutoHotKey do zatrzaskiwania okien na górze i na dole, ponieważ byłem tym również sfrustrowany. Możesz go pobrać z mojej strony: 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 ](http://www.ntwind.com/software/windowspace.html) zapewnia tę funkcjonalność. Aby zrobić to, o co prosisz:
Settings
Zrzut ekranu:
Podobnie jak northben, ja również napisałem skrypt AutoHotKey, aczkolwiek nieco inaczej, więc pomyślałem, że zasługuje on na własną odpowiedź. Ten skrypt powinien działać z dowolną liczbą monitorów lub orientacji monitora.
Polecenia są związane z Windows + Ctrl + Up i Down zamiast Shift, aby nie kolidować z istniejącym Windows + Shift + Up.
Działa to podobnie do pełnoekranowego przyciągania wysokości (Windows + Shift + Up) w tym sensie, że okno zachowuje swoją poziomą pozycję i szerokość. Można to łatwo zmienić, aby działało podobnie do przyciągania połowy lewej lub połowy prawej (Windows + Lewo lub Prawo) poprzez odkomentowanie linii ; WinMaximize, A
. Jeśli chcesz zachować domyślne zachowanie, ale czasami używasz 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)
Nie mam obecnie przed sobą maszyny z Windows 7, ale od czasów Windows 95 (lub nawet wcześniej), istnieje opcja kafelkowania okien w poziomie. Zminimalizuj wszystko oprócz dwóch okien, które chcesz wyświetlić na górze i na dole, kliknij prawym przyciskiem myszy na pasku zadań i wybierz opcję Kafelkuj okna poziomo. Spowoduje to, że każde okno zajmie połowę pionowego obszaru ekranu. Nie jest to przydatne do pojedynczego okna, i jak stwierdzono w innej odpowiedzi, nie ma skrótu klawiaturowego dla niego, ale uważam, że jest to przydatne czasami.
Korekta: w systemie Windows 7 nazywa się to “Pokaż okna ułożone w stos”
Najlepszym programem, jakiego kiedykolwiek używałem, który osiąga dokładnie to + więcej jest WinSplit Revolution: http://winsplit-revolution.com/
Gorąco polecam, ponieważ jest niezwykle prosty w użyciu i działa dobrze nawet z wieloma monitorami.
Filmik demonstracyjny: http://winsplit-revolution.com/screenshots/videos-demos
Ta aplikacja jest freeware i wydana na licencji Creative Commons Attribution-Non Commercial-No Derivative Works 3.0.
EDIT:
Wygląda na to, że WinSplit nie jest już dostępny, strona została przejęta przez Digital Creations AS, która posiada własną wersję tego typu oprogramowania i nie jest już darmowa ](http://maxto.net/#pricing)
Jak zasugerował Rain tutaj , PowerResizer działa dobrze. Nie jest zbyt konfigurowalny - nie można zmienić skrótów klawiaturowych, ale przynajmniej jest open source. Jak zauważył JoeB, możesz nacisnąć te klawisze podczas przeciągania okna: W, aby przesunąć w górę, i Z, aby przesunąć w dół. A to przesuwanie w lewo, S to przesuwanie w prawo. Możesz też po prostu przeciągnąć okno do krawędzi. Wciśnięcie 1,2,3 i 4 podczas przeciągania spowoduje ćwierć obrotu do rogu. Jestem z niego zadowolony, wypróbuj go.
Naprawiono błąd w rozwiązaniu Jasona Clementa. Kiedy okno zatrzaskuje się w pionie, wcześniej nie zajmowało szerokości monitora. Po prostu pozostałoby przy bieżącej szerokości okna, ale zatrzasnęłoby się na ½ monitora w pionie. Dzięki tej poprawce, okno zajmuje 50% pionowej wysokości w górę lub w dół i 100% poziomej szerokości monitora.
Również dla tych, którzy mogą nie znać AHK…
Mam nadzieję, że to pomoże, i dzięki Jason!
;-------------------------------------------------------------------;
; 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)
Jeśli masz kartę graficzną AMD, możesz użyć “Hydravision”.
(1) Otwórz Catalyst Control Center (2) W zakładce “Desktop and Displays” kliknij “More…” (3) W zakładce “Hydravision” kliknij “HydraGrid” (4) Zaznacz “Enable HydraGrid” (5) Kliknij “Edit HydraGrid” i umieść linie siatki tam, gdzie chcesz, np. w połowie wysokości monitora portretowego (6) Zastosuj
Teraz, gdy pracujesz z oknami, możesz kliknąć prawym przyciskiem myszy na pasku tytułu i wybrać “Attach to Grid”, a następnie przeciągnąć go z miejsca na miejsce, a on zatrzaśnie się na siatce.
Używam 3x1 24-calowych monitorów w trybie portretowym z tym ustawieniem i jest to najszybszy sposób, jaki znalazłem, aby przyciągnąć okna do górnej i dolnej połowy każdego monitora.
Sprawdź AquaSnap . Możesz przeciągać myszką, używać Ctrl+Mouse do zmiany rozmiaru dwóch okien kafelkowych w tym samym czasie, oprócz wielu innych funkcji.
Możesz również korzystać z szerokiej gamy skrótów klawiszowych. Ten program zastępuje kilka domyślnych ustawień Windows, do których jesteś już przyzwyczajony, oprócz zmiany Win+Up i Win+Down na dokowanie do góry/dołu.
WindowSpace działa, ale nie jest prawie tak ładny i może się zawiesić na chwilę po naciśnięciu apply. Porównywalnie, darmowa/próbna wersja Aquasnap Pro jest bardzo płynnym doświadczeniem.
W systemie Windows dostępnych jest wiele opcji, w tym układanie w stos, układanie obok siebie i kaskadowanie. Wykonuje się je 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, dowiedz się tego prosto z ust konia, Microsoftu tutaj .
Również strona ma wiele innych miłych ciekawostek - wiele z nich znasz, kilka może być nowych. Mam nadzieję, że to pomoże.
Istnieje wolny od stron trzecich sposób na osiągnięcie tej funkcjonalności, ale AFAIK:
Przepisem jest:
Win+Down
, aby jedno z okien zajęło jedną czwartą ekranu Win+Up
, aby drugie okno zajęło przeciwną ćwiartkę ekranu Jest to zależne od marki i oznacza używanie myszy zamiast klawiatury, ale jeśli używasz monitorów Dell, możesz użyć Dell Display Manager (darmowy).
Pozwala on na podzielenie każdego monitora jakkolwiek chcesz (2x1, 2x2, 4x2, cokolwiek), następnie zatrzaskujesz okna na miejscu w dowolnym segmencie. Używam go już od kilku lat i jest naprawdę dobry.
Windowpad jest super lekki i radzi sobie z tym całkiem przyjemnie.
Jest to samodzielny exe, uruchamiasz go po starcie systemu, następnie klawisz windows + numpad maksymalizuje do różnych ćwiartek i połówek. Lub jeśli nie masz numpada to capslock + obszar WASD. https://autohotkey.com/board/topic/19990-windowpad-window-moving-tool/
Jeśli używasz monitora firmy Dell, możesz zainstalować program Dell Display Manager, który ma opcje podziału ekranu na siatkę.
Następnie możesz przeciągnąć okno do komórki, trzymając wciśnięty klawisz Shift.
Musiałem wielokrotnie dzielić dwa okna przeglądarki na górze i na dole w systemie Windows 10 z konfiguracją wielomonitorową z wieloma innymi oknami już otwartymi. Mogłem to zrobić ręcznie, ale chciałem lepszego rozwiązania.
Znalazłem rozszerzenie Chrome Extension “Tab Resize - Split Screen Layouts”, które bardzo mi to ułatwiło.
Po prostu otwórz nowe okno Chrome, kliknij ikonę rozszerzenia Zmień rozmiar kart, wybierz opcję 2x1. Teraz wszystko jest łatwe i przyjemne.
Opcją, która okazała się przydatna jest podzielenie monitorów na wirtualne połówki przy użyciu DisplayFusion . W tym celu należy wykonać następujące czynności:
Monitor Configuration
. vertical split
do monitora. (Możesz się tym pobawić i podzielić swoje monitory jeszcze bardziej.) Po włączeniu tej funkcji, powinieneś być w stanie używać klawiszy Windows + strzałek do nawigacji okna, aby zmaksymalizować je do nowego, pionowo podzielonego obszaru monitora. Mam zamiar uruchomić moje dwa monitory 1920x1200 w trybie portretowym, gdy tylko pojawi się mój 30-calowy i pionowe okna będą koniecznością.