How do you control what monitor your application opens on?

Thomas Owens picture Thomas Owens · Oct 16, 2008 · Viewed 78.4k times · Source

As a two-monitor user at work, I've noticed that applications behave differently with regards to what monitor they open on (primary or secondary monitor, the last monitor the application opened on, and so on). To be honest, some applications annoy me because I want them to open on my primary monitor and I'll move them to my secondary if I want them there. However, these applications are done and out of my control, so I want to ask about my own applications that might be run by people using two monitors.

What kinds of controls are available to either allow people to specify which monitor your application opens on, allow an application to "remember" the monitor it was on when it was closed and reopen there, and to force the application to start on a specific monitor?

I'm looking for solutions across all operating systems and programming languages, although I'm guessing that different OSes and languages will have different controls.

Related Questions

  • What determines the monitor my app runs on? This question discusses existing applications and how they decide what monitor to run on. The currently accepted answer provides Windows functions that can be used to control the positioning of an app on start-up.
  • Start program on second monitor? provides some Delphi solutions for forcing an application to start on a particular monitor.

Answer

Chris Becke picture Chris Becke · Oct 16, 2008

As a windows programmer I control the starting monitor of windows created by my apps by a. storing my apps last position in the registry and restoring that, and b. lacking stored info, setting the starting position to magic flag values that windows uses to position the app using its default logic. The default logic changes from OS to OS as MS improve the user experience, but tend to ensure that the app will open on whatever monitor the user is most likely to be looking at.

As a user with a multi-monitor Windows XP / Vista system I'd use the nVidia desktop manager that has the ability to set starting positions for applications otherwise don't have appropriate behaviour.