I really like Virtual PC, in that it lets me keep all of my development environments separated. I only have to load what I really need, and if my environment gets hosed it’s easy enough to rebuild or restore from a backup.
What I don’t like though, is that I lose my multiple monitor capability. I really like having the ability to drag my Visual Studio watches and other debugging windows into a second window. Fortunately, I’ve discovered an answer.
First, create a second virtual PC. This can be a bare bones system, I removed a lot of the extras like games and such prior to installing. I also run it using a minimal 256 meg of memory.
Now, go get yourself a copy of MaxiVista. I first blogged about this great product on August 30th of 2006: https://arcanecode.wordpress.com/2006/08/30/9/ . MaxiVista allows you to go over the network take over a second computer, and use it as a second monitor. Remember yesterday when I said to the network a Virtual PC looks just like a real one?
Install the MaxiVista server program in your main development Virtual PC. Now install the MaxiVista viewer program in the second virtual machine you just created.
Now there is a final, but very important step you need to take. Before you launch either Virtual PC, you need to go into the settings for each one. Go down to Mouse, then be sure to uncheck the box that says “Use Pointer Integration”. If you don’t do this for both virtual machines, none of this will work right.
Now you are ready to go, just launch both machines, and maximize each to full desktop and you’ll be using Virtual PC with multiple monitors!
A couple of things you should note. By turning off pointer integration you will not be able to simply drag your mouse outside the virtual pc to the host one. You will need to hit the right ALT key to release the mouse. Not a big deal, especially since the intention is to run in full screen mode, but something you should be aware of.
Also, this assumes you are running Windows and have a legal copy for each virtual machine you setup. If you have a limited number of copies of Windows, there is one other way to get it working.
I loaded Ubuntu Linux into a Virtual PC environment, then WINE, then the MaxiVista Viewer component. I actually got it to work as a secondary monitor, although MaxiVista’s remote control capabilities did not work. This isn’t something I use every day though, just tried as an experiment so your mileage may vary.
There you go, an arcane combination that will allow you to use multiple monitors with a Virtual PC!