È possibile "agganciare" in alto / in basso anziché solo a sinistra / a destra in Windows 7?


125

In Windows 7, so che puoi fare Windows+ Leftper mettere una finestra nella metà sinistra dello schermo. C'è una funzione che farà in alto e in basso?


@RockPaperLizard Devi anche ricordare che Windows 7 è davvero vecchio ed è l'unico sistema operativo ad avere una funzione di snap nativo, ad oggi. Ad esempio, devo trovare uno script di tipo "estensione" di terze parti per farlo su Mac. Inoltre, Windows 10 ha Snap per ogni direzione, compresi gli angoli! In altre parole, penso che il team di Windows provi davvero sul lato UX. L'interfaccia utente a volte è un test di personalità, ma UX è qualcosa in cui Windows è storicamente abbastanza bravo.
Joseph Hansen,

@Joseph Sono davvero d'accordo sul fatto che MS abbia avuto molti successi nell'arena UX. Erano persino disposti a esplorare nuovi territori, anche se non di successo commerciale, con Microsoft Bob . Sfortunatamente, i loro successi sono guastati da numerosi insuccessi, il più notevole dei quali è Windows 8 . Non so se il fallimento di quel progetto sia stato il loro team UX o il rifiuto della direzione di ascoltarli.
RockPaperLizard,

Risposte:


73

No. Le uniche opzioni di snap disponibili sono:

  • mezzo scatto sinistro ( Windows+ left)
  • mezzo scatto destro ( Windows+ right)
  • snap altezza schermo intero ( Windows+ shift+ up)
  • snap massimizzato ( Windows+ up)
  • "un-snap" ( Windows+ down)
  • aggancia al monitor / display successivo ( Windows+ shift+ ( lefto right))

Modifica: altre fantastiche combinazioni che ti potrebbero piacere:

  • minimizza tutto ( Windows+ m)
  • minimizza tutto tranne la finestra attiva ( Windows+ Home)
  • Aero peek (visualizza desktop, tutte le finestre diventano trasparenti) ( Windows+ space)

Bene, stavo cercando di capire come mantenere fissa la posizione verticale ma consentire il movimento orizzontale senza usare lo snap dello schermo sinistro / destro e dover regolare nuovamente la larghezza della finestra, e lo snap dell'altezza dello schermo intero fa esattamente quello che volevo.
JAB

4
Oh, ho appena scoperto che fare doppio clic sul bordo superiore della barra del titolo (cioè quando viene visualizzata la freccia verticale a doppia estremità) fa anche lo snap dell'altezza dello schermo.
JAB

7
In Windows 10 ora esiste un'altra opzione: dopo aver scattato a sinistra oa destra, è possibile premere upo down, ad esempio, per scattare in alto a sinistra . Non quello che l'OP voleva, ma forse utile per gli altri.
Andre,

nessun "snap a larghezza schermo intero?" -_-
Shayan,

Per il downvoter, questa è la risposta corretta per Windows 7. Windows 10 ha nuove opzioni di snap ...
Joseph Hansen,

58

Uso i seguenti passaggi per eseguire ciò:

  1. Windows+ D(per ridurre a icona tutte le finestre)
  2. quindi usa il mouse per posizionare le finestre che voglio impilare nella posizione generale su ciascun monitor (non preoccuparti di ridimensionarle)
  3. quindi fai clic destro sulla barra delle applicazioni e seleziona "Mostra finestre sovrapposte" dal menu contestuale, quindi ripristina tutte le altre finestre che desidero

Nota: è necessario ridurre a icona le finestre che non si desidera impilare. Questo è ciò che il passaggio 1 è destinato a fare.


1
Questo è davvero utile Lo so da Win 98 ma non l'ho mai usato su Win 7, perché su Win XP e versioni precedenti puoi selezionare i pulsanti della barra delle applicazioni per scegliere quali finestre impilare ma che non funzionano più in Windows 7, quindi quando seleziono l'opzione impilerà tutte le finestre sullo schermo. Blog technet: lo sapevi: mostra le finestre sovrapposte, sovrapposte o affiancate
phuclv

Questo è utile, ma impilerà tutte le finestre in tutti i monitor.
Leone,

Questo funziona ancora anche per Windows 10.
risate10m

@Leo - e anche su tutti i desktop. Interessante :)
J Bryan Price

23

Ho scritto un piccolo script di AutoHotKey per bloccare le finestre in alto e in basso perché ero frustrato anche per questo. Puoi scaricarlo dal mio sito Web: 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

Funziona, ma apre anche la schermata iniziale in Windows 8.1. Come porre rimedio a questo problema?
Gabriel Hautclocq,

2
Questo è esattamente quello che speravo di trovare. Grazie! Ho notato che il comando non modifica la larghezza della finestra. Un modo per passare automaticamente alla larghezza dello schermo intero quando scatta su / giù?
Alex P. Miller,

1
Questo non funziona per me su Windows 10. Ho 3 monitor, di cui 2 in modalità verticale. Stai esplicitamente parlando di 2 aree di lavoro, non sei sicuro che questa sia la causa. Inoltre, dovresti menzionare quale combinazione di tasti devi premere in questa risposta per le persone che non conoscono la sintassi AHK
Joakim Söderberg,

1
Funziona solo in parte sul mio Windows 7 con un monitor orizzontale e uno verticale. Perfettamente sul monitor orizzontale, ma sulla verticale sembra prendere l'altezza da quella orizzontale.
liscio

21

WindowSpace fornisce questa funzionalità. Per fare quello che stai chiedendo:

  • Vai alla scheda "Spostamento e ridimensionamento" in Settings
  • Per "Bordo superiore:", scegli "Sposta sul lato superiore"
  • Per "Bordo inferiore:", scegli "Sposta sul lato inferiore"

Immagine dello schermo:

immagine dello schermo


9
La chiave di licenza da $ 25 è richiesta ad un certo punto?
ruffin,

2
Preferisco AquaSnap (è gratuito o costa 9 dollari per multi monitor): youtube.com/watch?v=bOVOEebpiWc Ma da Windows 10 non è più necessario perché le funzionalità più importanti fanno parte del sistema operativo, ora.
mgutt

1
AquaSnap ora costa $ 18 (se usi più monitor), e fa molte cose che Win10 non fa, come lo snap superiore / inferiore e la piastrellatura. Molto bello.
Isherwood,

9

Al momento non ho una macchina Windows 7 davanti a me, ma sin da Windows 95 (o anche prima forse), c'è stata la possibilità di affiancare Windows in orizzontale. Riduci a icona tutto tranne due finestre che desideri visualizzare in alto e in basso, fai clic con il pulsante destro del mouse sulla barra delle attività e seleziona Affianca finestre orizzontalmente. Dimensionerà ogni finestra per occupare metà dell'area verticale dello schermo. Questo non è utile da fare per una singola finestra e, come ha affermato un'altra risposta, non esiste una scorciatoia da tastiera, ma lo trovo utile a volte.

Correzione: su Windows 7, questo si chiama "Mostra finestre sovrapposte"


8

Simile a Northben, ho anche scritto uno script AutoHotKey, anche se in modo leggermente diverso, quindi ho pensato che meritasse una sua risposta. Questo script dovrebbe funzionare con qualsiasi numero di monitor o orientamenti del monitor.

I comandi sono associati a Windows+ Ctrl+ Upe Downinvece di Shiftnon interferire con il Windows+ Shift+ esistente Up.

Funziona in modo simile allo snap altezza schermo intero ( Windows+ Shift+ Up) in quanto la finestra mantiene la sua posizione orizzontale e larghezza. Questo può essere facilmente modificato per funzionare in modo simile alla metà sinistra o alla metà destra ( Windows+ Lefto Right) decommentando la ; WinMaximize, Alinea. Se si desidera mantenere il comportamento predefinito, ma a volte utilizzare il comportamento a metà scatto, è sufficiente ingrandire la finestra prima di scattare.

Funziona con Windows 7 a 64 bit e 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)

1
Vorrei che avrebbe funzionato. Sto ottenendo The following variable name contains an illegal character: "params*". Per ora sto usando la sceneggiatura di @ Northben
bit

Grazie per questo script. Super utile. Ho scoperto che non si sarebbe caricato fino a quando non avessi rimosso lo spazio tra il nome della funzione UpDownSnap e la parentesi.
Jason Dufair,

Forse questo era anche un problema di cui sopra. È interessante notare che la mia sceneggiatura non ha spazio; Non sono sicuro di come ci sia arrivato. L'ho rimosso, grazie.
Jason Clement,

Funziona bene in Windows 8.1 :-)
Gabriel Hautclocq

Grazie @JasonClement per la tua soluzione. Ho corretto un bug nella tua soluzione e pubblicato come un'altra risposta.
Zee,

7

Il miglior programma che abbia mai usato per realizzare esattamente questo + altro è WinSplit Revolution: http://winsplit-revolution.com/

Lo consiglio vivamente, poiché è estremamente semplice da usare e funziona bene anche con più monitor.

Video dimostrativo: http://winsplit-revolution.com/screenshots/videos-demos

Questa applicazione è freeware e rilasciata con licenza Creative Commons Attribution-Non Commercial-No Derivative Works 3.0.

MODIFICARE:

Sembra che WinSplit non sia più disponibile, il sito Web è stato acquisito da Digital Creations AS, che ha la propria versione di questo tipo di software e non è più gratuito


Il software è ancora disponibile da Softonic e funziona ancora a meraviglia su Windows 10 a partire dall'aggiornamento
JoeB

5

posiziona le tue finestre proprio come vuoi tu -> fai clic destro sulla barra delle applicazioni -> "mostra finestre impilate" -> profitto!


4

Come Rain ha suggerito qui , PowerResizer funziona bene. Non molto personalizzabile: non è possibile modificare le scorciatoie da tastiera, ma è almeno open source. Come osserva JoeB, puoi premere questi mentre trascini una finestra: W per spostarti verso l'alto e Z per spostarti verso il basso. A è per spostarsi a sinistra, S per spostarsi a destra. O semplicemente trascina la finestra sul bordo. Premendo 1,2,3 e 4 durante il trascinamento verrà eseguito un quarto di scatto in un angolo. Sono contento, provalo.


Ho appena provato WindowSpace; se non ti dispiace pagare $ 25, è una soluzione molto migliore.
leetNightshade,

1
C'è documentazione! readme.txt nella cartella di installazione dei file di programma. Per non parlare, fa esattamente quello che volevo, che era mezzo scatto verticale. 1/4 snap sono un bonus extra!
scaryman,

3

Se hai una scheda grafica AMD, puoi usare "Hydravision".

(1) Apri Catalyst Control Center (2) In "Desktop e display" fai clic su "Altro ..." (3) In "Hydravision" fai clic su "HydraGrid" (4) Seleziona "Abilita HydraGrid" (5) Fai clic su "Modifica HydraGrid "e posiziona le linee della griglia dove desideri, ad esempio a metà del monitor verticale (6) Applica

Ora, quando lavori con Windows, puoi fare clic con il tasto destro sulla barra del titolo e selezionare "Allega alla griglia", quindi trascinarlo da un posto all'altro e si aggancerà alla griglia.

Corro 3x1 monitor da 24 "in modalità verticale con questa configurazione ed è il modo più veloce che ho trovato per far scattare le finestre nella metà superiore e inferiore di ciascun monitor.


1
Ho fatto l'errore di installare Catalyst Control Center per provare Hydravision. Quel programma è un maiale e sto cercando un'altra soluzione.
dana,

2

Dai un'occhiata ad AquaSnap . Puoi trascinare il mouse come previsto, usare Ctrl + Mouse per ridimensionare due finestre piastrellate contemporaneamente, oltre a una serie di altre funzionalità.

Scopri le fantastiche funzionalità di docking

È inoltre possibile utilizzare un'ampia varietà di tasti di scelta rapida. Questo programma ignora alcune impostazioni predefinite di Windows che sei già abituato a utilizzare, oltre a cambiare Win + Up e Win + Down per il dock in alto / in basso.

Esempi di tasti di scelta rapida

WindowSpace funziona, ma non è altrettanto bello, e può riattaccare per un po 'quando premi applica. In confronto, la versione gratuita / di prova di Aquasnap Pro è un'esperienza molto fluida.


1

Esistono molte opzioni fornite da Windows, tra cui STACKING, SIDE BY SIDE e CASCADING. Queste vengono eseguite facendo clic con il pulsante destro del mouse su un'area vuota della barra delle attività (in genere nella parte inferiore dello schermo) e selezionando. Sì, non è una scorciatoia da tastiera, ma è abbastanza vicina.

Non fidarti di me, prendilo direttamente dalla bocca del cavallo, Microsoft qui .

Anche il sito web ha molte altre curiosità, molte delle quali conosci, alcune potrebbero essere nuove. Spero che sia di aiuto.


1

Esiste un modo gratuito di terze parti per ottenere questa funzionalità, ma AFAIK:

  • Richiede un po 'di utilizzo del mouse
  • Funziona solo per due finestre.

La ricetta è:

  1. Scatta le finestre affiancate nel solito modo.
  2. Premere Win+Downper fare in modo che una delle finestre occupi un quarto dello schermo
  3. Seleziona l'altra finestra e premi Win+Upper fare in modo che l'altra finestra prenda il quarto opposto dello schermo
  4. Usa il mouse per afferrare il bordo della finestra e ridimensionarlo al bordo dello schermo, massimizzando così la larghezza di ogni finestra senza modificarne l'altezza.

Bel consiglio, ma è un sacco di lavoro per farlo bene ogni volta.
11101101b

1

Risolto un bug nella soluzione di Jason Clement. Quando la finestra scatta in verticale, in precedenza non occupava anche la larghezza del monitor. Rimarrebbe solo alla larghezza della finestra corrente, ma si aggancerebbe a 1/2 monitor in verticale. Con questa correzione, si aggancia all'altezza verticale del 50% su o giù e alla larghezza orizzontale del 100% del monitor.

Inoltre, per coloro che potrebbero non conoscere AHK ...

  1. Scarica AutoHotKey
  2. Crea un file di testo nel blocco note. Incolla il codice in esso. Salvalo con l'estensione corretta per AutoHotKey, ad esempio "VerticalSnap.ahk"
  3. Fai clic destro sul file da Explorer, scegli "Compila script"
  4. La compilazione dovrebbe creare un file "VerticalSnap.exe" in quella directory.
  5. Apri run.exe, digita "shell: startup" e premi Invio.
  6. Una nuova finestra di Explorer dovrebbe aprirsi alla cartella Avvio.
  7. Copia / incolla il file .exe in questa cartella di avvio.
  8. Al prossimo avvio, questo script dovrebbe essere in esecuzione. È possibile utilizzare CRTL + WINDOWS + UPARROW o + DOWNARROW per scattare nella parte superiore della metà inferiore del monitor. Si noti che la finestra non deve essere ingrandita affinché funzioni.

Spero che sia d'aiuto, e grazie 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)

0

Un'opzione che ho trovato utile è quella di suddividere i monitor in metà virtuali utilizzando DisplayFusion . Puoi impostarlo nel modo seguente:

  • Fare clic con il tasto destro del mouse sull'icona DisplayFusion situata nell'area di notifica e andare a Monitor Configuration.
  • Seleziona il monitor che desideri configurare.
  • Aggiungi vertical splita al monitor. (Potresti giocare con questo e dividere ulteriormente i tuoi monitor.)

Con questa opzione abilitata, dovresti essere in grado di utilizzare i tasti Windows+ Arrowper spostarti nella finestra e ingrandirla in quella nuova area divisa verticalmente del monitor. Sto per far funzionare i miei due monitor 1920x1200 in modalità verticale una volta che il mio 30 "entra e le finestre a scatto verticale saranno una necessità.


0

Avevo bisogno di dividere ripetutamente i due browser Windows in alto e in basso in Windows 10 con un'impostazione multi-monitor con molte altre finestre già aperte. Poteva farlo manualmente ma voleva una soluzione migliore.

Ho trovato l'estensione "Ridimensionamento scheda - Layout schermo diviso" dell'estensione di Chrome che mi ha reso semplicissimo.

Basta aprire una nuova finestra di Chrome, fare clic sull'icona di estensione Ridimensiona scheda, selezionare l'opzione 2x1. Bello e facile adesso.


1
Sembra che la persona che ha posto la domanda abbia voluto una soluzione che funzioni per tutti i programmi, non solo per Chrome. Hai qualcosa che lo fa?
Ben N

0

Se si utilizza un monitor Dell, è possibile installare Dell Display Manager, che dispone di opzioni per dividere il display in una griglia.

Quindi puoi trascinare la finestra in una cella tenendo premuto il tasto Maiusc.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.