I have a dual monitor setup, and I recently played around with the positioning settings, and some of my single window applications do the favour of preserving where they were last closed, and opening in the same position later. Unfortunately, that now places them out of the viewable area of my screens!

Is there some way to force a particular window into the viewable area?

  • 1
    This is still a problem in windows 10! I have 3 monitors and I only use one 'here and there'... when I do, then stop using it, some open programs default to opening up on it. I have to do the win+left arrow to eventually get it back to the main monitor. – user153343 Jun 4 '16 at 15:13
  • 1
    Still a problem seven years later... – Jack Wasey Feb 15 '17 at 22:30
  • Possible duplicate of superuser.com/questions/1206086/… – SDsolar May 4 '17 at 23:18

20 Answers 20

up vote 180 down vote accepted

For Windows 7 and later users: Windows Key+Shift+ or will move the selected window to the monitor in that direction.

  • 2
    Thanks for this, I had an app with a non-standard window so the Alt-Space technique didn't work (Foxit Reader on Windows). – Bdoserror Nov 5 '15 at 18:38
  • 19
    Works on Windows 10 too, thanks. – grena Jan 4 '16 at 20:43
  • 3
    Also of note is the win + left/right/up, which places the window covering half of the active monitor (on either side) or maximizes it. This should work in all conditions I've found, and are very useful keys too (except when I keep hitting them when trying to fn + arrow keys :P). – Kat Jan 30 '17 at 16:42
  • 8
    This does nothing in my Windows 10 Pro x64 – Mike 'Pomax' Kamermans May 25 '17 at 1:00
  • 2
    @Mike'Pomax'Kamermans: Funny. This is the only thing that works on my Windows 10 Pro x64 laptop to move an Emacs window that opens off-screen. – Mike Sherrill 'Cat Recall' Jul 13 '17 at 11:15

I use this approach:

  • Use Alt+Tab to switch to the off-screen application.
  • Press Alt+SPACE to bring up the system menu (you won't see it because it is off screen)
  • Press R to select the "Restore" menu choice to ensure the windows isn't maximized (you cannot move it if it is maximized)
  • Press Alt+SPACE again, then M to select the "Move" menu choice.
  • Press one of the arrow keys to initiate the movement.
  • Now just use the mouse to place the window where you want.

If you are using a non-English version of Windows, the "R" and "M" menu choices will probably be different.

  • 5
    Thanks a lot "Terje Mikal" for your solution, that saved me. But given that the problem only happens since Windows 7 removed the good old solution (Right-Click the App button on the Taskbar), there is an even better solution, posted by "kmote" on 18 Jun 2013 17:45 under "Emthigious" 10 oct 2010 08:50: « Under Windows 7 you need to SHIFT-right-click on the taskbar button » – Michel Merlin Dec 10 '16 at 8:25
  • 1
    Tried every other step, but initiating movement with the arrow keys is what finally, actually did it... wow. And I was this close to reinstalling the application! – Philip Jan 12 '17 at 17:56
  • 1
    With the app I'm dealing with, Restore is greyed out, but Maximize does work in that phase, and then the move is not required. Maximize for the win! – Brian Bulkowski Mar 21 at 22:47

You can right-click the program's button on the taskbar, and then click "Move". You can now use the arrow-buttons on your keyboard to move the window where you can see it. Requires some fiddling, sometimes the windows get "stuck" on the monitors edges. You can also try using the mouse, but the keyboard is a bit more reliable if you can't see the window yet ;-)

  • 2
    Didn't know about the keyboard, but you can't use the mouse if they are offscreen, I tried that already. – Matthew Scharley Oct 10 '09 at 8:54
  • 1
    You should be able to use the arrow keys even if they are offscreen, unless there is something non-standard on your system that prevents this. This has always been my standard response for people experiencing this issue. – music2myear Apr 22 '11 at 19:13
  • 8
    Also after pressing at least one arrow key the window is "attached" to the mouse and you can move it with your mouse (without clicking!) This one-key-plus-mouse approach is usually faster than using keys only. – Daniel Rikowski Jun 4 '13 at 15:52
  • 8
    Under Windows 7 you need to SHIFT-right-click on the taskbar button. – kmote Jun 18 '13 at 17:45
  • This is the only solution that worked for me... – sebagomez Aug 27 '16 at 21:13

For Windows 10 in order to use the old move the window with the cursor keys trick you need to have the Shift key pressed when you open the context menu from the Task bar.

enter image description here

Info from How To Geek

  • In current Windows 10 builds, you can also mouse over the task bar and hold for a second, which will cause a thumbnail view of the window to appear. Right-clicking the thumbnail gives the "old" context menu just like a shift-click. – Coderer Aug 13 at 7:31

Back before there was the task bar, I used to fix this problem with Alt+Space to bring up the window menu, then M for the Move function. The arrow keys would then allow you to move the window back on-screen.

  • +1 with caveat that they will not move if they are maximised to a screen, this can be a problem if the windows are not simply "beyond the limits" but are on a dummy screen. They may be for the OP since maximising should have covered the whole of the resolution of the occupied screen. – mckenzm Apr 3 at 1:30

Another fast way is to r-click on the task bar and select Cascade Windows.

  • 4
    This is a rather ugly way of doing it because it'll affect all my open windows (and I usually have atleast a browser open as well, if not half a dozen others) – Matthew Scharley Oct 10 '09 at 9:22
  • 1
    True, it's fastest however. Also you can close the window that was off screen and use undo cascade after that which will restore positions of the windows. I don't know if it will also restore position of the window that was off screen to that position since I can't try it (only have one monitor). – T. Kaltnekar Oct 10 '09 at 10:22

Edit: Discontinued as per comments

To quickly solve this problem in the future, and to position applications over the dual-screen I can recommend Winsplit Revolution. It reduces solving this problem to simply pressing Ctrl-Alt and a num-pad key to put the window back exactly where you want it.

  • unfortunately it's not free anymore – Charbel Sep 15 '14 at 16:35
  • Yeah, it looks good but I have a strict policy of not paying unless I want to do so. Like for Lastpass or Acronis True Image. And with my schedule it is very possible that it may be more than 30 days before the problem crops up again so trial periods don't work for me. – SDsolar May 4 '17 at 19:21
  • 1
    WinSplit Revolution has unfortunately been discontinued, and there are no new updates coming." replaced by "MaxTo", currently USD $19 – TT-- Oct 2 at 13:54

I ran into this problem, and absolutely nothing worked for me. So I went into Task Manager, and right-clicked the program that was off screen. Switch to didn't work, nor did bring to front. To note, this was a static window, so maximize was unavailable via the taskbar. But you can maximize via the Task Manager, and that brings it to your main display! From there you can do whatever you need to with the window. :)

  • Thank you for this answer. Right clicking & Maximize in Task Manager was the only thing that worked for me. – a coder Dec 16 '15 at 0:48

I use a nifty little tool called Shove-it which simply checks whether any window is outside the screen edge and shoves it back onto the screen again. It's ancient software (and the homepage proves it) but works on all Windows versions.

I just ran into this problem with Git GUI on Windows 7, which is based on Tk and as such tends to glitch out in weird ways at times on Windows. I tried hitting Alt-Space and using the move command to shimmy it back into view, but it seemed stuck. Maximising it would bring it back, but if I put it back into windowed mode it would disappear again.

What I did was maximise it, grab the title bar, and drag it to the side of the screen so that Aero Snap sized it to half the screen size and put it into windowed mode. After that, I dragged it away from the side of the screen, and regained control of it.

  • So many answers more highly upvoted, yet not a single one worked for me. This did. – Dan Nissenbaum Feb 4 '17 at 17:07
  • Git GUI brought me here, too, but I solved it with the Shift-RightClick (on the taskbar icon), Move, arrow key, then mouse (to put the window where it should be) combination. Emthigious / Brad Patton's solution works. – mcalex Jul 3 '17 at 3:59

I had the same issue with winamp. The only (unsatisfactory) solution i found so far: change the screen resolution to a different one and back


You could use NIRSOFT WinLister. I noticed the “Move” method is not available on Windows 7 when you are using the classic theme, and various other methods failed so I’m posting my “IF all else fails” alternative.

  1. Download the WinLister application here.

  2. Run WinLister as Administrator and select the window you wish to move back on Screen. Not running as administrator will not give the application the ability to move the windows for you.

  3. Right click and select “Center Selected Windows” and you’re done!

Screenshots here.

  • 1
    Great tip - this is the only solution that worked for me for MS TFS power tools as Alt-Space only opened the menu for the owning windows explorer window, not the sub-window which was off screen. – danio Sep 23 '13 at 10:48

In some cases, despite having multiple screens at the remote location, you may not have access to them from your location. The key commands won't work because you have been locked out of any view that is not on your screen.

In this case, if you can open additional instances of the application, do so. The first few instances will almost certainly appear in the task bar as yet more phantom windows. Keep doing this. Eventually, they will begin to populate the primary view. Then use the task bar icon to right click and close the off-screen instances. Once there are NO off-screen instances open, close the ones on the primary screen. Next time you open that application, it will appear on the primary screen and not "off camera."

  • 1
    What are you referring to: “remote location”, “your location”, etc…?  Why would the user be “locked out of any view that is not on your screen”? – Scott Oct 22 '16 at 1:26
  • He means VM, Citrix, RDP etc. You are not going to be reading multi-4K on your phone. This is also the case for dummy screens. Some corporate users put an HDMI dongle in, to park mandated desktop items out of sight. Going back to 1 real screen moves them back. – mckenzm Apr 3 at 1:35

Select the window (e.g., using Alt+Tab). Then hold Alt+F7 and move the window with the arrow keys back into view. Done.

Sometimes it is hard to know blindly where the hidden window is located (and thus how to move it towards the screen). Animations during selection of the window might be helpful. Due to my setup (I occasionally use a second screen on top of my laptop screen), windows that appear off screen are usually below. Holding Alt+F7+Up therefore brings them into view.

For anyone familiar with PowerShell, try this:

  • Copy & paste the below code into a PowerShell ISE session.
  • Hit Run
  • Press ALT+TAB / whatever to make the off-screen window active
  • Wait a few moments (5 seconds from hitting RUN on the script)
  • The window should now appear.

If the window is a main window, it will be moved to the top left corner of the screen.

If the window is a child window of another program, its top left corner will be aligned with its parent window's top left corner.

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
        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.
        [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
        [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"    

Original code here: https://gist.githubusercontent.com/JohnLBevan/1593bbb860c2d2af436a1c9414e8adfa/

put cursor on task bar..right click select show window side by side..it will bring the window on screen..and finally bring again cursor on task bar right click select undo show window side by side..

You can also use UltraMon (non-free, Windows, GUI) to set up a keyboard shortcut to move a window to the next or previous monitor.

enter image description here

From Move a window to the bottom/top monitor with a shortcut on Windows by Tymric:

I wrote an AHK script.


Win + Alt + Arrow: Move the active window to the monitor whose direction is indicated by the arrow. Note that this may cause your window to move outside the screen if you try to go up from monitor 2 or right from monitor 3 in your setup. I'll update it in the future.

Win + Alt + Number: Move the active window to the given monitor number


SysGet, MonitorCount, MonitorCount

  GoSub CalculateDisplacement
  WinMove, A, , %xPos%, %displaceYneg%
  GoSub CalculateDisplacement
  WinMove, A, , %xPos%, %displaceYpos%
  GoSub CalculateDisplacement
  WinMove, A, , %displaceXneg%, %yPos%
  GoSub CalculateDisplacement
  WinMove, A, , %displaceXpos%, %yPos%

  GoSub CalculateDisplacement
  WinMove, A, , %xPosOn1%, %yPosOn1%

  if (MonitorCount > 1) {
    GoSub CalculateDisplacement
    WinMove, A, , %xPosOn2%, %yPosOn2%

  if (MonitorCount > 2) {
    GoSub CalculateDisplacement
    WinMove, A, , %xPosOn3%, %yPosOn3%

  if (MonitorCount > 3) {
    GoSub CalculateDisplacement
    WinMove, A, , %xPosOn4%, %yPosOn4%

  if (MonitorCount > 4) {
    GoSub CalculateDisplacement
    WinMove, A, , %xPosOn5%, %yPosOn5%

  if (MonitorCount > 5) {
    GoSub CalculateDisplacement
    WinMove, A, , %xPosOn6%, %yPosOn6%

  if (MonitorCount > 6) {
    GoSub CalculateDisplacement
    WinMove, A, , %xPosOn7%, %yPosOn7%

  if (MonitorCount > 7) {
    GoSub CalculateDisplacement
    WinMove, A, , %xPosOn8%, %yPosOn8%

  if (MonitorCount > 8) {
    GoSub CalculateDisplacement
    WinMove, A, , %xPosOn9%, %yPosOn9%

  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

I've written a tool called Borderline that will automatically move off-screen windows back on-screen when run. You have to run it when you need it (works best if you assign it a keyboard shortcut or put it in the start menu), but that also means it's not always running in the background.

How to move windows that open up offscreen?

Temporary lower the screen resolution, grab the top bar with the mouse and move the the center. Wait for the system to automatically restore the resolution.

  1. DeskTop -> Screen resolution
  2. Select your monitor, change to some lower resolution from the current setting.
  3. System shows the new resolution, asks if you want to keep or revert in 30 seconds.
  4. Within 30 seconds, grab the miss located window and move it to the center.
  5. Wait for the time out to automatically revert.

Window moved...

protected by Community May 4 '17 at 19:45

Thank you for your interest in this question. Because it has attracted low-quality or spam answers that had to be removed, posting an answer now requires 10 reputation on this site (the association bonus does not count).

Would you like to answer one of these unanswered questions instead?

Not the answer you're looking for? Browse other questions tagged or ask your own question.