it-swarm.com.de

Wie verschiebe ich Fenster, die sich außerhalb des Bildschirms öffnen?

Ich habe ein Dual-Monitor-Setup und habe kürzlich mit den Positioniereinstellungen herumgespielt. Einige meiner Einzelfensteranwendungen tun dies, um zu verhindern, dass sie zuletzt geschlossen wurden und später an derselben Position geöffnet werden. Leider werden sie jetzt außerhalb des sichtbaren Bereichs meiner Bildschirme platziert!

Gibt es eine Möglichkeit, ein bestimmtes Fenster in den sichtbaren Bereich zu zwingen?

265

Für Benutzer von Windows 7 und höher: Windows Key+Shift+ oder  Bewegt das ausgewählte Fenster in diese Richtung auf den Monitor.

192
andho

Ich benutze diesen Ansatz:

  • Benutzen Alt+Tab um zur Off-Screen-Anwendung zu wechseln.
  • Drücken Sie Alt+SPACE um das Systemmenü aufzurufen (es wird nicht angezeigt, da es nicht auf dem Bildschirm angezeigt wird)
  • Drücken Sie R Wählen Sie die Menüoption "Wiederherstellen", um sicherzustellen, dass die Fenster nicht maximiert sind (Sie können sie nicht verschieben, wenn sie maximiert sind).
  • Drücken Sie Alt+SPACE dann wieder M um die Menüoption "Verschieben" auszuwählen.
  • Drücken Sie eine der Pfeiltasten, um die Bewegung einzuleiten.
  • Platzieren Sie nun das Fenster mit der Maus an der gewünschten Stelle.

Wenn Sie eine nicht englische Version von Windows verwenden, unterscheiden sich die Menüoptionen "R" und "M" wahrscheinlich.

422
Terje Mikal

Für Windows 10, um das alte zu verwenden, bewegen Sie das Fenster mit den Cursortasten Shift Taste gedrückt, wenn Sie das Kontextmenü in der Taskleiste öffnen.

enter image description here

Info von How To Geek

14
Brad Patton

Sie können mit der rechten Maustaste auf die Programmschaltfläche in der Taskleiste klicken und dann auf "Verschieben" klicken. Sie können jetzt die Pfeiltasten auf Ihrer Tastatur verwenden, um das Fenster an die Stelle zu verschieben, an der Sie es sehen können. Erfordert ein wenig Fummeln, manchmal bleiben die Fenster an den Rändern des Monitors hängen. Du kannst es auch mit der Maus versuchen, aber die Tastatur ist etwas zuverlässiger, wenn du das Fenster noch nicht siehst ;-)

12
Emthigious

Früher, bevor es die Taskleiste gab, habe ich dieses Problem mit behoben Alt+Space um dann das Fenstermenü aufzurufen M für die Move-Funktion. Mit den Pfeiltasten können Sie das Fenster wieder auf dem Bildschirm verschieben.

8
Greg Hewgill

Eine andere schnelle Möglichkeit besteht darin, erneut auf die Taskleiste zu klicken und Cascade Windows auszuwählen.

8
T. Kaltnekar

Bearbeiten: Gemäß Kommentaren eingestellt

Um dieses Problem in Zukunft schnell zu lösen und Anwendungen über den Dual-Screen zu positionieren, kann ich empfehlen Winsplit Revolution . Sie können dieses Problem nur durch Drücken von Strg-Alt und einer Zifferntaste lösen, um das Fenster wieder genau dort zu platzieren, wo Sie es haben möchten.

5
Andy

Ich bin auf dieses Problem gestoßen, und für mich hat absolut nichts funktioniert. Also ging ich in den Task-Manager und klickte mit der rechten Maustaste auf das Programm, das sich außerhalb des Bildschirms befand. Wechseln zu hat nicht funktioniert, noch nach vorne gebracht. Zu beachten ist, dass dies ein statisches Fenster war, sodass das Maximieren über die Taskleiste nicht möglich war. Aber Sie können über den Task-Manager maximieren, und das bringt es zu Ihrem Hauptdisplay! Von dort aus können Sie mit dem Fenster alles tun, was Sie brauchen. :)

5
Leo

Ich bin gerade auf dieses Problem mit der Git-GUI unter Windows 7 gestoßen, die auf Tk basiert und daher unter Windows manchmal auf seltsame Weise fehlerhaft ist. Ich habe versucht, die Alt-Leertaste zu drücken und sie mit dem Befehl move wieder sichtbar zu machen, aber sie schien hängen zu bleiben. Das Maximieren würde es zurückbringen, aber wenn ich es wieder in den Fenstermodus versetze, würde es wieder verschwinden.

Ich habe es maximiert, die Titelleiste genommen und an die Seite des Bildschirms gezogen, sodass Aero Snap es auf die Hälfte der Bildschirmgröße skalierte und es in den Fenstermodus versetzte. Danach zog ich es von der Seite des Bildschirms weg und erlangte die Kontrolle wieder.

3
unused

Ich benutze ein kleines Tool namens Shove-it , das einfach prüft, ob sich ein Fenster außerhalb des Bildschirmrandes befindet und es wieder auf den Bildschirm schiebt. Es ist eine alte Software (und die Homepage beweist es), funktioniert aber auf allen Windows-Versionen.

Probieren Sie Folgendes aus, wenn Sie mit PowerShell vertraut sind:

  • Kopieren Sie den folgenden Code und fügen Sie ihn in eine PowerShell ISE-Sitzung ein.
  • Hit Run
  • Drücken Sie ALT + TAB/Was auch immer, um das Off-Screen-Fenster zu aktivieren
  • Warten Sie einen Moment (5 Sekunden nach dem Drücken von RUN im Skript)
  • Das Fenster sollte jetzt erscheinen.

Wenn das Fenster ein Hauptfenster ist, wird es in die obere linke Ecke des Bildschirms verschoben.

Wenn das Fenster ein untergeordnetes Fenster eines anderen Programms ist, wird seine linke obere Ecke an der linken oberen Ecke des übergeordneten Fensters ausgerichtet.

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"    
}

Originalcode hier: https://Gist.githubusercontent.com/JohnLBevan/1593bbb860c2d2af436a1c9414e8adfa/

1
JohnLBevan

Sie könnten NIRSOFT WinLister verwenden. Ich habe festgestellt, dass die Methode "Verschieben" unter Windows 7 nicht verfügbar ist, wenn Sie das klassische Design verwenden, und verschiedene andere Methoden sind fehlgeschlagen, sodass ich meine Alternative "WENN alles andere fehlschlägt" veröffentliche.

  1. Laden Sie die WinLister-Anwendung herunter hier .

  2. Führen Sie WinLister als Administrator aus und wählen Sie das Fenster aus, das Sie wieder auf dem Bildschirm anzeigen möchten. Wenn Sie nicht als Administrator ausgeführt werden, kann die Anwendung die Fenster nicht für Sie verschieben.

  3. Klicken Sie mit der rechten Maustaste und wählen Sie "Ausgewählte Fenster zentrieren". Fertig!

Screenshots hier .

1
user199343

In einigen Fällen haben Sie möglicherweise von Ihrem Standort aus keinen Zugriff auf mehrere Bildschirme, obwohl sich am Remote-Standort mehrere Bildschirme befinden. Die Tastaturbefehle funktionieren nicht, da Sie für alle Ansichten gesperrt wurden, die nicht auf Ihrem Bildschirm angezeigt werden.

In diesem Fall können Sie weitere Instanzen der Anwendung öffnen. Die ersten paar Instanzen werden mit ziemlicher Sicherheit in der Taskleiste als weitere Phantomfenster angezeigt. Mach so weiter. Schließlich werden sie beginnen, die primäre Ansicht aufzufüllen. Verwenden Sie dann das Taskleistensymbol, um mit der rechten Maustaste zu klicken und die Off-Screen-Instanzen zu schließen. Sobald KEINE Off-Screen-Instanzen geöffnet sind, schließen Sie die Instanzen auf dem Primärbildschirm. Wenn Sie diese Anwendung das nächste Mal öffnen, wird sie auf dem primären Bildschirm und nicht "aus der Kamera" angezeigt.

1
Greg Mayer

Wählen Sie das Fenster aus (z. B. mit Alt+Tab). Dann halte Alt+F7 und bewegen Sie das Fenster mit den Pfeiltasten zurück in die Ansicht. Erledigt.

Manchmal ist es schwierig, blind zu erkennen, wo sich das verborgene Fenster befindet (und wie man es in Richtung Bildschirm bewegt). Animationen bei der Auswahl des Fensters können hilfreich sein. Aufgrund meiner Einrichtung (ich verwende gelegentlich einen zweiten Bildschirm über meinem Laptop-Bildschirm) sind Fenster, die außerhalb des Bildschirms angezeigt werden, normalerweise unten. Halten Alt+F7+Up bringt sie daher in Sicht.

1
Georg Jung

Ich hatte das gleiche Problem mit Winamp. Die einzige (unbefriedigende) Lösung, die ich bisher gefunden habe: Ändern Sie die Bildschirmauflösung auf eine andere und zurück

Thomas

1
Thomas

Sie können auch UltraMon (nicht frei, Windows, GUI) verwenden, um eine Tastenkombination zum Verschieben eines Fensters zum nächsten oder vorherigen Monitor einzurichten.

enter image description here

0

Von Verschieben eines Fensters zum unteren/oberen Monitor mit einer Verknüpfung unter Windows von Tymric :

Ich habe ein AHK-Skript geschrieben.

Verwendungszweck:

Win + Alt + Arrow: Bewegen Sie das aktive Fenster auf den Monitor, dessen Richtung durch den Pfeil angezeigt wird. Beachten Sie, dass dies dazu führen kann, dass sich Ihr Fenster außerhalb des Bildschirms bewegt, wenn Sie versuchen, in Ihrem Setup von Monitor 2 nach oben oder von Monitor 3 nach rechts zu springen. Ich werde es in Zukunft aktualisieren.

Win + Alt + Number: Verschiebt das aktive Fenster auf die angegebene Monitornummer

#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

setzen Sie den Cursor auf die Taskleiste. Klicken Sie mit der rechten Maustaste, um das Fenster nebeneinander anzuzeigen. Das Fenster wird auf dem Bildschirm angezeigt. Klicken Sie mit der rechten Maustaste, um das Fenster nebeneinander anzuzeigen.

0
ravi21

Manchmal löste dies:

  • Klicken WinKey + P
  • Wählen Sie Extend oder eine andere Option, und alle Fenster werden kaskadiert. Verschieben Sie das gewünschte Fenster zum Hauptbildschirm.
0
T.Todua

Ich habe ein Tool mit dem Namen Borderline geschrieben, das Off-Screen-Fenster beim Ausführen automatisch wieder auf den Bildschirm verschiebt. Sie müssen es ausführen, wenn Sie es benötigen (funktioniert am besten, wenn Sie ihm ein Tastaturkürzel zuweisen oder es in das Startmenü einfügen), aber das bedeutet auch, dass es nicht immer im Hintergrund ausgeführt wird.

0
jamesdlin