it-swarm-eu.dev

Come spostare finestre che si aprono fuori dallo schermo?

Ho una configurazione a doppio monitor, e di recente ho giocato con le impostazioni di posizionamento, e alcune delle mie applicazioni a finestra singola hanno il privilegio di preservare dove sono state chiuse l'ultima volta e di aprire nella stessa posizione in seguito. Sfortunatamente, ora li posiziona fuori dall'area visibile dei miei schermi!

C'è un modo per forzare una finestra particolare nell'area visibile?

265
Matthew Scharley

Per gli utenti di Windows 7 e versioni successive: Windows Key+Shift+ o  sposterà la finestra selezionata sul monitor in quella direzione.

192
andho

Io uso questo approccio:

  • Uso Alt+Tab per passare all'applicazione fuori campo.
  • Stampa Alt+SPACE per far apparire il menu di sistema (non lo vedrai perché è fuori dallo schermo)
  • Stampa R selezionare la voce di menu "Ripristina" per assicurarsi che le finestre non siano ingrandite (non è possibile spostarle se è ingrandita)
  • Stampa Alt+SPACE di nuovo, allora M per selezionare la voce di menu "Sposta".
  • Premere uno dei tasti freccia per iniziare il movimento.
  • Ora basta usare il mouse per posizionare la finestra dove vuoi.

Se stai utilizzando una versione non inglese di Windows, le scelte di menu "R" e "M" saranno probabilmente diverse.

422
Terje Mikal

Per Windows 10, al fine di utilizzare il vecchio spostare la finestra con i tasti cursore trucco è necessario avere il Shift tasto premuto quando si apre il menu di scelta rapida dalla barra delle attività.

enter image description here

Informazioni da How To Geek

14
Brad Patton

È possibile fare clic con il pulsante destro del mouse sul pulsante del programma sulla barra delle applicazioni, quindi fare clic su "Sposta". Ora puoi usare i pulsanti freccia sulla tastiera per spostare la finestra dove puoi vederla. Richiede qualche giochino, a volte le finestre si "incastrano" sui bordi dei monitor. Puoi anche provare a usare il mouse, ma la tastiera è un po 'più affidabile se non riesci ancora a vedere la finestra ;-)

12
Emthigious

Indietro prima c'era la barra delle applicazioni, ho usato per risolvere questo problema con Alt+Space per far apparire il menu della finestra, quindi M per la funzione Sposta. I tasti freccia ti permetteranno quindi di spostare la finestra sullo schermo.

8
Greg Hewgill

Un altro modo veloce è quello di fare clic con il tasto destro sulla barra delle applicazioni e selezionare Cascade Windows.

8
T. Kaltnekar

Modifica: interrotto come da commenti

Per risolvere rapidamente questo problema in futuro, e per posizionare le applicazioni sul doppio schermo posso raccomandare Winsplit Revolution . Riduce la risoluzione di questo problema semplicemente premendo Ctrl-Alt e un tasto num-pad per riportare la finestra esattamente dove si desidera.

5
Andy

Mi sono imbattuto in questo problema, e assolutamente nulla ha funzionato per me. Quindi sono entrato in Task Manager e ho fatto clic con il pulsante destro del mouse sul programma fuori schermo. Passare a non ha funzionato, né ha portato in primo piano. Per notare, questa era una finestra statica, quindi ingrandire non era disponibile tramite la barra delle applicazioni. Ma puoi massimizzare tramite il Task Manager, che lo porta al display principale! Da lì puoi fare tutto il necessario con la finestra. :)

5
Leo

Ho appena incontrato questo problema con Git GUI su Windows 7, che è basato su Tk e in quanto tale tende a glitch in modi strani a volte su Windows. Ho provato a premere Alt-Space e usare il comando move per farlo tornare a vedere, ma sembrava bloccato. Massimizzandolo lo riporterebbe indietro, ma se lo rimettessi in modalità finestra scomparirebbe di nuovo.

Ciò che ho fatto è stato di massimizzarlo, prendere la barra del titolo e trascinarla sul lato dello schermo in modo che Aero Snap lo ridimensionasse a metà dello schermo e lo mettesse in modalità finestra. Dopo di ciò, l'ho trascinato lontano dal lato dello schermo e ho riacquistato il controllo su di esso.

3
unused

Io uso un piccolo e ingegnoso strumento chiamato Shove-it che controlla semplicemente se una finestra si trova fuori dallo schermo Edge e la spinge nuovamente sullo schermo. È un software antico (e la homepage lo dimostra) ma funziona su tutte le versioni di Windows.

Per chi ha familiarità con PowerShell, prova questo:

  • Copia e incolla il codice seguente in una sessione ISE PowerShell.
  • Hit Run
  • Premi ALT + TAB/qualunque cosa per rendere attiva la finestra fuori campo
  • Attendi qualche istante (5 secondi dopo aver premuto RUN sullo script)
  • Ora dovrebbe apparire la finestra.

Se la finestra è una finestra principale, verrà spostata nell'angolo in alto a sinistra dello schermo.

Se la finestra è una finestra secondaria di un altro programma, l'angolo in alto a sinistra sarà allineato all'angolo in alto a sinistra della finestra principale.

Add-Type @"
    using System;
    using System.Runtime.InteropServices;

    // https://msdn.Microsoft.com/en-us/library/windows/desktop/dd162897(v=vs.85).aspx
    public struct RECT 
    {
        public long left;
        public long top;
        public long right;
        public long bottom;
    }

    public class User32WinApi 
    {

        // https://msdn.Microsoft.com/en-us/library/windows/desktop/ms633505(v=vs.85).aspx
        /*
            Gets the handle of the in-focus window
            NB: In some scenarios this can be NULL; so code needed to handle such an event
        */
        [DllImport("user32.dll")]
        public static extern IntPtr GetForegroundWindow();

        // https://msdn.Microsoft.com/en-us/library/windows/desktop/ms633503(v=vs.85).aspx
        /*
            top & left are always 0 (i.e. since the rectangle is relative to the window itself)
            bottom & right equal the windows hieght and width, respectively.
        */
        [DllImport("user32.dll")]
        [return: MarshalAs(UnmanagedType.Bool)]
        public static extern bool GetClientRect(IntPtr hWnd, out RECT lpRect);

        // https://msdn.Microsoft.com/en-us/library/windows/desktop/ms633534(v=vs.85).aspx
        [DllImport("user32.dll")]
        [return: MarshalAs(UnmanagedType.Bool)]
        public static extern bool MoveWindow(IntPtr hWnd, int X, int Y, int nWidth, int nHeight, bool bRepaint);

    }

"@
$repaint = $true 
$windowSize = New-Object RECT

"Quick; get the window you're after in focus; you have 5 seconds..."
Start-Sleep -Seconds 5 #allow 5 seconds for the user to get the window they're after in focus (e.g. using ALT+TAB / whatever)
$activeWindow = [User32WinApi]::GetForegroundWindow()
if ($activeWindow) {
    if([User32WinApi]::GetClientRect($activeWindow, [ref]$windowSize)) {
        if ([User32WinApi]::MoveWindow($activeWindow, 0, 0, $windowSize.right, $windowSize.bottom, $repaint)) {
            "Window moved successfully (hope you agree!)"
        } else {
            Write-Warning "Failed to move the active window"
        }
    } else {
        Write-Warning "Failed to get size of the active window"    
    }
} else {
    Write-Warning "No active window found"    
}

Codice originale qui: https://Gist.githubusercontent.com/JohnLBevan/1593bbb860c2d2af436a1c9414e8adfa/

1
JohnLBevan

È possibile utilizzare NIRSOFT WinLister. Ho notato che il metodo "Move" non è disponibile su Windows 7 quando si utilizza il tema classico e vari altri metodi non sono riusciti, quindi sto pubblicando la mia alternativa "IF all else fail".

  1. Scarica l'applicazione WinLister qui .

  2. Esegui WinLister come amministratore e seleziona la finestra che desideri spostare sullo schermo. Non eseguito come amministratore non darà all'applicazione la possibilità di spostare le finestre per te.

  3. Fai clic con il tasto destro e seleziona "Center Selected Windows" e il gioco è fatto!

Schermate qui .

1
user199343

In alcuni casi, nonostante disponga di più schermi nella posizione remota, potresti non avere accesso ad essi dalla tua posizione. I comandi chiave non funzioneranno perché sei stato bloccato da qualsiasi vista che non è presente sullo schermo.

In questo caso, se puoi aprire istanze aggiuntive dell'applicazione, fallo. Le prime due istanze saranno quasi certamente visualizzate nella barra delle applicazioni come finestre ancora più fantasma. Continua a farlo. Alla fine, inizieranno a popolare la vista principale. Quindi utilizzare l'icona della barra delle applicazioni per fare clic con il pulsante destro del mouse e chiudere le istanze fuori schermo. Una volta che non ci sono istanze fuori schermo aperte, chiudi quelle sullo schermo principale. La prossima volta che apri l'applicazione, verrà visualizzata sullo schermo principale e non su "off camera".

1
Greg Mayer

Seleziona la finestra (ad esempio, utilizzando Alt+Tab). Quindi tieni premuto Alt+F7 e sposta la finestra con i tasti freccia in vista. Fatto.

A volte è difficile sapere ciecamente dove si trova la finestra nascosta (e quindi come spostarla verso lo schermo). Le animazioni durante la selezione della finestra potrebbero essere utili. A causa della mia configurazione (di tanto in tanto uso un secondo schermo sopra lo schermo del mio portatile), le finestre che appaiono fuori dallo schermo sono solitamente sotto. Tenere Alt+F7+Up quindi li porta in vista.

1
Georg Jung

Ho avuto lo stesso problema con Winamp. L'unica soluzione (insoddisfacente) che ho trovato finora: cambia la risoluzione dello schermo in una diversa e viceversa

Tommaso

1
Thomas

Puoi anche usare UltraMon (non libero, Windows, GUI) per impostare una scorciatoia da tastiera per spostare una finestra sul monitor successivo o precedente.

enter image description here

0

Da Sposta una finestra in basso/in alto monitor con un collegamento su Windows per Tymric :

Ho scritto uno script AHK.

Uso:

Win + Alt + Arrow: Sposta la finestra attiva sul monitor la cui direzione è indicata dalla freccia. Notare che questo potrebbe far sì che la finestra si sposti fuori dallo schermo se si tenta di salire dal monitor 2 o destra dal monitor 3 nella configurazione. Lo aggiornerò in futuro.

Win + Alt + Number: Sposta la finestra attiva sul numero di monitor specificato

#Persistent

SysGet, MonitorCount, MonitorCount


#!Up::
  GoSub CalculateDisplacement
  WinMove, A, , %xPos%, %displaceYneg%
  return
#!Down::
  GoSub CalculateDisplacement
  WinMove, A, , %xPos%, %displaceYpos%
  return
#!Left::
  GoSub CalculateDisplacement
  WinMove, A, , %displaceXneg%, %yPos%
  return
#!Right::
  GoSub CalculateDisplacement
  WinMove, A, , %displaceXpos%, %yPos%
  return

#!1::
  GoSub CalculateDisplacement
  WinMove, A, , %xPosOn1%, %yPosOn1%
  return

#!2::
  if (MonitorCount > 1) {
    GoSub CalculateDisplacement
    WinMove, A, , %xPosOn2%, %yPosOn2%
  }
  return

#!3::
  if (MonitorCount > 2) {
    GoSub CalculateDisplacement
    WinMove, A, , %xPosOn3%, %yPosOn3%
  }
  return

#!4::
  if (MonitorCount > 3) {
    GoSub CalculateDisplacement
    WinMove, A, , %xPosOn4%, %yPosOn4%
  }
  return

#!5::
  if (MonitorCount > 4) {
    GoSub CalculateDisplacement
    WinMove, A, , %xPosOn5%, %yPosOn5%
  }
  return

#!6::
  if (MonitorCount > 5) {
    GoSub CalculateDisplacement
    WinMove, A, , %xPosOn6%, %yPosOn6%
  }
  return

#!7::
  if (MonitorCount > 6) {
    GoSub CalculateDisplacement
    WinMove, A, , %xPosOn7%, %yPosOn7%
  }
  return

#!8::
  if (MonitorCount > 7) {
    GoSub CalculateDisplacement
    WinMove, A, , %xPosOn8%, %yPosOn8%
  }
  return

#!9::
  if (MonitorCount > 8) {
    GoSub CalculateDisplacement
    WinMove, A, , %xPosOn9%, %yPosOn9%
  }
  return


CalculateDisplacement:
  WinGetPos, xPos, yPos, , , A
  Loop, %MonitorCount% {
    SysGet, MonitorDimension, Monitor, %A_Index%
    if (xPos > MonitorDimensionLeft and xPos < MonitorDimensionRight and yPos < MonitorDimensionBottom and yPos > MonitorDimensionTop) {
      currentMonitor = %A_Index%
    }
  }
  SysGet, thisMonitor, Monitor, %currentMonitor%
  displaceXpos := xPos + thisMonitorRight - thisMonitorLeft
  displaceYpos := yPos + thisMonitorTop - thisMonitorBottom
  displaceXneg := xPos - thisMonitorRight + thisMonitorLeft
  displaceYneg := yPos - thisMonitorTop + thisMonitorBottom
  Loop, %MonitorCount% {
    SysGet, nextMonitor, Monitor, %A_Index%
    xPosOn%A_Index% := xPos - thisMonitorLeft + nextMonitorLeft
    yPosOn%A_Index% := yPos - thisMonitorTop + nextMonitorTop
  }
  return
0

posiziona il cursore sulla barra delle applicazioni .. fai clic su seleziona mostra finestra affiancata.è possibile visualizzare la finestra sullo schermo..e infine portare nuovamente il cursore sulla barra delle applicazioni fare clic con il pulsante destro del mouse selezionare annulla finestra di visualizzazione affiancata ..

0
ravi21

A volte, questo ha risolto:

  • Clic WinKey + P
  • Scegli Extend o un'altra opzione e tutte le finestre verranno sovrapposte. Sposta la finestra desiderata sulla schermata principale.
0
T.Todua

Ho scritto uno strumento chiamato Borderline che sposterà automaticamente le finestre fuori dallo schermo sullo schermo quando è in esecuzione. Devi eseguirlo quando ne hai bisogno (funziona meglio se gli assegni una scorciatoia da tastiera o lo metti nel menu di avvio), ma ciò significa anche che non è sempre in esecuzione in background.

0
jamesdlin