308

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?

4
  • 4
    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, 2016 at 15:13
  • 5
    Still a problem seven years later...
    – Jack Wasey
    Feb 15, 2017 at 22:30
  • Possible duplicate of superuser.com/questions/1206086/…
    – SDsolar
    May 4, 2017 at 23:18
  • winlister is the best.. I tried the other tricks before, but this one works all of the time.. alt-space, etc. only works on some windows
    – Mikey
    Feb 24, 2020 at 13:43

22 Answers 22

234

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

12
  • 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, 2015 at 18:38
  • 5
    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, 2017 at 16:42
  • 13
    This does nothing in my Windows 10 Pro x64 May 25, 2017 at 1:00
  • 3
    @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. Jul 13, 2017 at 11:15
  • 5
    Wow, can't believe I never knew about this. Someone still finding this useful 8 years later :)
    – J Sargent
    Oct 4, 2017 at 1:58
476

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.

10
  • 10
    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 » Dec 10, 2016 at 8:25
  • 2
    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! Jan 12, 2017 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! Mar 21, 2018 at 22:47
  • I do as above but the following combo also works for me, Alt + Tab, Alt +Space, M, then press Esc, this also seems to work
    – Mz A
    Feb 28, 2019 at 6:58
  • 1
    Its almost 2020, still dealing with this.
    – Mert
    Aug 8, 2019 at 9:27
31

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

3
  • 10
    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, 2018 at 7:31
  • 1
    @Coderer: The comment is really helpful, I didn't know that. I thought they removed it completely. Aug 29, 2019 at 12:12
  • I totally forgot about this! I think you can also shift-right-click if the taskbar button represents one window. You get a different context menu if there's more than one window for the application in question.
    – Coderer
    Aug 29, 2019 at 12:22
14

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 ;-)

7
  • 2
    Didn't know about the keyboard, but you can't use the mouse if they are offscreen, I tried that already. Oct 10, 2009 at 8:54
  • 3
    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. Apr 22, 2011 at 19:13
  • 11
    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. Jun 4, 2013 at 15:52
  • 9
    Under Windows 7 you need to SHIFT-right-click on the taskbar button.
    – kmote
    Jun 18, 2013 at 17:45
  • This is the only solution that worked for me...
    – sebagomez
    Aug 27, 2016 at 21:13
11

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
  • 1
    +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, 2018 at 1:30
11

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

2
  • 7
    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) Oct 10, 2009 at 9:22
  • 2
    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). Oct 10, 2009 at 10:22
7

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. :)

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

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.

3
  • 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, 2013 at 10:48
  • I used their WinExplorer - that also works for windows, where the simpler methods don't work, because all the ususal windows interaction are disabled. As opposed to WinLister, this will work without admin rights! Jun 18, 2021 at 11:35
  • 2
    Gui Prop View is the newer replacement for WinLister Aug 18, 2021 at 19:17
6

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.

6
  • unfortunately it's not free anymore
    – Charbel
    Sep 15, 2014 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, 2017 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, 2018 at 13:54
  • 2
    WinSplit-Revolution is freeware and is still available for download if you search for it. The last version was 11.04, released in 2011. It works in Windows 10. The modified v9.02 source is available in GitHub as WinSplit-Reloaded. It's an awesome product.
    – Ben
    Jun 10, 2019 at 15:07
  • 2
    @Ben: there's a more maintained version at github.com/dozius/winsplit-revolution it seems Aug 18, 2021 at 19:16
3

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.

6
3

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.

2
  • So many answers more highly upvoted, yet not a single one worked for me. This did. Feb 4, 2017 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, 2017 at 3:59
1

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

Thomas

1

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

2
  • 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”? Oct 22, 2016 at 1:26
  • 2
    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, 2018 at 1:35
1

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.

1

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
        */
        [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"    
}

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

0

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

0

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

0

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

I wrote an AHK script.

Usage:

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

#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

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.

0

Sometimes, this solved:

  • Click WinKey + P
  • Choose to Extend or another option, and all windows will be cascaded. Move the desired window to primary screen.
0

Right-click the thumbnail which appears when you hover over an app button in the taskbar, click Move. Use or keys to start moving the window, then use your mouse to position the window.

This window menu is also accessible with keyboard:

  1. Press Windows+T to focus the first app button in the taskbar,
  2. Continue pressing Windows+T until you reach the app you need or use or keys to move between buttons;
  3. Press to select the first window thumbnail of the app, if required, use or to select another window;
  4. Press Shift+F10 or Menu if it's available on your keyboard;
  5. Click Move and use or keys to start moving the window.

The above is just another way to access the same window menu that's mentioned in Terje Mikal's and Brad Patton's answers, it displays the window menu which is accessible by Alt+Space.

If the Move command is disabled, you may need to click Restore first.

-1

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

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .