2

I know that windows 7 has some built-in functionality that controls opening an app on a particular monitor. This proves to work great when only working with two monitors. Open chrome on monitor 1, drag it to monitor 2, close chrome, open chrome and it opens on monitor 2.

My issue is that I have 4 pieces of software running on a quad monitor display station and my results are quite mixed with windows 7 remembering which one goes where.

At risk of asking a "shopping" question, is there a third party utility that does a better job at this particular task?

I need to be able to reboot the machine and my 4 apps to always launch in the same place without any user interaction. Right now my testing has this only working about 7/10 times as desired. That would be acceptable if this weren't for a customer's facility.

My only other option at this point is to write a console app to launch the processes but i'm not quite sure if it supports an x/y coordinate offset in the process.start overloads.

Thanks for reading.

1

2 Answers 2

2

It might have something to do with the order of turning on the devices. Be sure to turn on all the screens before the computer is started. If some screens are turned on after windows is booting, windows might reset the default location where each app has to start to be sure it doesn't start out of bounds. If you want to be sure that the apps always start in the right screen, best thing to do is to make a launcher for it, but then all screens must be turned on.

1
  • good point. Some programs that can switch up what monitor it thought it was on when the monitors are thought to move position (1-2-3 to 2-3-1). I had this issue with a toolbars program that I had to tell it to be on 2 (as seen in its settings), which put it on 1. never did figure out what it was thinking. I might try and clear out the bags in the registry and see if that helped, but there are lots of other users pointing out that win7 will ignore the stored window position data in some circumstances (demonstrated).
    – Psycogeek
    Apr 23, 2014 at 1:13
0

I did a little digging last night and have some workable code to use for a console app

sFileName is the name of the process which is grabbed from the database

the properties me.xcoord and me.ycoord are calculated based upon which sFileName process is being launched.

 Dim myExe As New Process
 myExe.StartInfo.FileName = String.Format("{0}{1}{2}", My.Settings.programsdirectory, sFileName, My.Settings.buildextension)
 myExe.StartInfo.UseShellExecute = True
 myExe.StartInfo.Arguments = String.Format("{0} {1}", Me.XCOORD, Me.YCOORD)
 Try
     Process.Start(myExe.StartInfo.FileName, myExe.StartInfo.Arguments)
 Catch ex As Exception
     ApplicationInfo.ExceptionHandler(ex)
 End Try

You must log in to answer this question.

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