Super User is a question and answer site for computer enthusiasts and power users. It's 100% free, no registration required.

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I work on a four monitor system with two dual output Nvidia graphics cards. Assorted software occasionally pops up dialog boxes with questions or messages. I would like it if the dialog boxes always appeared on the same monitor as the software's main window - but it doesn't. Is there any way I can tell the system which monitor it should place dialog boxes in?

share|improve this question
up vote 3 down vote accepted

It has been my experience that it varies depending on the application. Some are making system calls so that the dialog boxes will always pop up on the "main" or "primary" monitor. Others will open where ever they were last dismissed from. Still others will follow the app and open on its monitor. The inconsistency is beyond frustrating and having used multi-monitor XP systems for the better part of a decade now, I can say I haven't come across a way to unify them. Inconsistencies like that were one of the many reasons I switched to Macs.

share|improve this answer
Sadly this is correct; it depends on the way the program is written. This isn't even really a Windows flaw so much as a systemic oversight in software development. I'm not aware of any app that will let you force this, either - plenty can force the launch of the initial window but dialog boxes aren't as easy. :/ – Shinrai Mar 21 '11 at 14:36
do you know how to chnage which is the "main" or "primary" monitor? – Mick Mar 21 '11 at 15:01
IIRC, its whatever monitor your Start Menu lives on. It seems like I remember there being a way to separate that distinction using TweakUI back in the day, but I could be wrong. – peelman Mar 21 '11 at 17:13

I have an AMD FirePro Multi-Monitor Card. This card supports AMD's HydraVision which includes a Desktop Manager. One of the options available is to 'Preserve Application Position and Size', and there is also an option for 'Enable Dialog Repositioning' which you can set to 'Show on preferred display X' or 'Show on application's display'.

share|improve this answer

Just to supplement @peelman's answer:

To support multiple monitor in a program - you need to call EnumDisplayMonitors and supply a callback function for each monitor. (In win32 api, for the matter...)

See for details

share|improve this answer

I had this same problem at work on a windows XP system. The workaround that I found was using a scripting language called AutoIt. There is a library for working with multiple monitors. You can use the libray to specify a monitor and center a window on it automatically based on certain criteria (ie window title or process name). You can also use built in functions to specify exact coordinates if you desire.

The basics of it are that you need to have a looping script in the background that watches for specific windows and moves them when they appear. If you want more details, I can provide a general skeleton with some examples of options.

share|improve this answer
Sounds very interesting, though I would be nervous of it being rather complex. I would like to see an example script. Thanks – Mick Mar 22 '11 at 10:06

there is a VBS script found here called "PositionDialogs". You run it at system startup, and it will move any subsequently opened dialog to whatever monitor the parent program is running on.

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

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