Monitors! Windows Extended Across Windows

In any IT department, there is a certain geek-cool to having a whole range of monitors attached to your PC. The more, the geekier. OK, but are you really trying? In these straitened times, Surely it must be possible to harness old PCs and laptops into a huge display? Our intrepid expert Systems Engineer, Wesley "Nonapeptide" David, is dispatched to investigate the possibilities.

Monitors! They’re versatile, rugged, eat any rodents in the area and they scare off anyone with a mind to stealing your Hello Kitty post-it notes when you’re not there. Oh sure, them being cold blooded makes for some sluggish mornings, but you can let them borrow your USB coffee mug warmer while you read your emails.

Unfortunately this article is not about reptilian monitors. Nearly all countries have laws prohibiting their ownership and editorial restrictions prevent me from showing you how to circumnavigate those laws.

However, there is another kind of monitor that all of us like nearly as much. Computer monitors!

1277-508664515_853780cf3a.jpg

Picture “Multi Monitor Mayhem” by Aldo Gonzalez (totalAldo on Flickr) under Attribution 2.0 Generic license

There is no DBA, developer or  SysAdmin that dislikes monitors. It’s nearly impossible to complete our work as SysAdmin without at least a pair of physical monitors. In fact, I’m certain that at this very moment the wave of photons flowing from your monitor and crashing against your eyeballs is just one in a sea of monitors on your desk. And if it’s not, I bet you wish it was.

However, if multiple monitors are a SysAdmin’s bliss then departmental budgets (and the financial gymnastics required to stay within them) are a SysAdmin’s bane. What is a poor administrator to do when he can’t afford new shiny objects? It’s time to channel our inner MacGuyver and get creative!

There’s no need to worry if you can’t justify spending the money on a new monitor or you’ve already filled up your existing graphics card’s video-out ports. Surely you have a graveyard of PCs and ancient monitors somewhere that you can rob. In fact, old laptops are prime candidates for this sort of project, especially if they are tablets that can have their display swiveled flat to the rest of the laptop.

I’ll explain how to extend your Windows desktop across multiple independent Windows PCs (something like GUI dumb terminals) as well as how to seamlessly move your cursor between two separate PCs (as opposed to simply having a VNC or Remote Desktop window within your host PC opened to the other PCs). There will be Linux-centric instructions forthcoming in the future. Let’s get started!

Extending your Windows PC across other Windows PCs’ monitors.

Probably the easiest configuration possible is to extend a Windows PC’s workspace across another Windows PC’s monitor(s). There is no cross-OS kung fu to practice or multi-component rigging to be erected. There are several easy software titles that can be used to perform this, so I’ll pick two of the more popular and easy to use ones in this article and save the grittier possibilities for future articles.

There are two main software titles that I have discovered for this task : MaxiVista by Bartels Media GmbH and ZoneScreen by Vasily Tarasov. MaxiVista is a commercial product that you must pay for and ZoneScreen is a freeware product, however it is not open source and carries with it a non-commercial license unless you pay a nominal license fee of $5 USD per server.

There was also a product by the name of DoubleView from Laplink, however installation is only supported on Windows XP or below (!) and in fact the installer throws an exception if you attempt to run it on Windows 7. You can technically sneak the product onto a Windows 7 PC by installing it in compatibility mode for XP SP3. However, does that really sound like a wise idea to you? It didn’t to me.

We’re going to start off by using MaxiVista.

MaxiVista

This product is the forty-two stone  gorilla in the Windows to Windows desktop extension scene. Not to say that it can’t benefit from improvements, however no one has made a compelling rival as of yet.

To start off, the system requirements are fairly minimal. The primary PC (the PC who’s desktop you’re intending to extend) needs to be Windows XP or newer with only 5MB of free space and 64-bit OSs are supported. Any secondary PCs (those PCs that you want to extend your monitors onto) have the same requirements, except for only needing 1MB of free space. Both the primary PC and all secondary PCs can be on separate subnets.

Getting up and running with MaxiVista is merely a matter of double-clicking the installer for the primary PC and clicking ‘next’ a few times before rebooting. The primary PC (known as the MaxiVista server) will need to modify some Windows Firewall rules and this should be taken into consideration for security purposes. I only allow the lenient firewall rules on trusted networks and choose to have the Windows Firewall refuse Maxivista’s ports when I’m on public and untrusted networks. There’s virtually no chance that I’ll be in a position to use MaxiVista when I’m travelling anyway. Next run the installation file designed for the secondary PC and you’re done. All in all it should take no more than a few minutes. Once the installations are complete the real fun begins.

If you open your Windows display properties you can see that you have a “MaxiVista Virtual Video” display adapter. The more remote PCs you are using, the more displays you will see here. You can arrange them as you would normally arrange physical monitors attached to your graphics card.

1277-img1A.jpg

As you can see, my laptop thinks I have four monitors attached to it. Display 1 is the physical laptop, display 4 is my external HP monitor, and display 3 is the MaxiVista virtual monitor that will extended my display to a Windows Vista PC sitting right next to the laptop. What’s the deal with display 2? That’s the ZoneScreen virtual display driver that we’ll be using later in this article so you can disregard it.

MaxiVista shows up on both the server and client in the system tray. The client has a single monitor icon and the server has a double monitor icon.

1277-img1B.jpg

If you right click the systray icon on the server and select “Activate Extended Screen” it will scan the local subnet for any PC that has the MaxiVista secondary software installed. I if you do not want to scan the network or you have MaxiVista clients on different subnets You may also manually input the static IP address into the options dialog box on the Server.

To prevent any MaxiVista server from attaching to any open MaxiVista client, each license key makes a unique pair of server and viewer programs. In effect, viewers can only be connected to by a server that has the same license key. This allows for multiple installations of MaxiVista servers on the same LAN without confusingly allowing anyone to extend or control just any MaxiVista viewer.

Depending on which edition of MAxiviewer you purchase, some of the advanced options include:

·         Installing the viewer as a service so that it’s always ready to be connected to

·         Synchronizing screensavers across all displays and preventing hibernation and standby on the secondary PCs. This truly makes the secondary monitors act as if they are extensions of the primary PC.

·         Clipboard syncing.

·         Compression settings to change how much network bandwidth you’re using.

·         Hotkey assignments. For example, you can have a hotkey to send Ctrl-Alt-Del to the secondary PC.

In my opinion, there are some downsides to the product. At the time of this writing, the $39 price tag only gets you the most basic feature of being able to extend your desktop onto a single remote PC. For $49 you can use up to three secondary PCs as well as use “remote control mode. For $99 you get desktop mirroring (not sure why this is only in the highest edition) as well as specialized data compression features for advanced performance (apparently a feature that only gamers or people who would watch videos on extended monitors would need). What that adds up to is a deceptively low priced product that can turn out to be a tad bit expensive if you want features that seem to me to be rather useful. The carrot is dangled just slightly out of reach.

Adding to the possibly frustrating way that the editions are tiered, when you purchase one of the three editions you are stuck with it and cannot upgrade. For example, if you purchase the $49 middle tier edition and then decide you need the added features of the $99 version, you cannot merely pay the different and input a new license key. You must purchase the $99 version separately and then be stuck with two versions. In today’s world of software, that seems like a rather amateurish limitation. Surely there must be a technical reason to it, however standards have changed for what customers expect and this is below today’s standards. Fortunately the trial includes the data compression features so you can test if you’ll truly need that; however the trial is limited by only allowing one secondary PC. You can’t test out using three remote PCs if that’s a goal of yours.

The last detraction is that there is no client piece for non-Windows operating systems. You cannot extend your desktop onto a computer running Linux or Mac. With MaxiVista, there is no hope for those of you with an ancient iBook or Ubuntu based Asus EEEeeeePC (I could never remember how many ‘e’s Asus used) that is gathering spores in your closet.

Nevertheless, if you can can tolerate being unable to connect to Linux machines, then MaxiVista might be the product for you. MaxiVista has so far worked very nicely for me. It’s not a hack job and appears to have very few bugs.

Now let’s take a look at a free but much less extensive alternative to MaxiVista.

ZoneScreen

ZoneScreen is a freeware project created by Vasily Tarasov that is free for non-commercial use. A fee of $5 USD is request by the author (he also accepts equivalent dollar amounts in gift certificates at relevant places like GoDaddy or Skype), however there is no licensing code within ZoneScreen so it’s all based on the honor system. If you decide to use it in a business setting, show Vasily some love for his work!

ZoneScreen consists of two components. The first is a kernel mode virtual video driver. The second is the ZoneScreen Wizard which takes the images sent to the ZoneScreen virtual video driver and transmits them across the network to a remote PC for display.

There are downloads supporting Windows 98 up through 7 and there is also support for Windows Mobile 2003! Yes, you can extend your desktop onto a Windows Mobile device and here’s some YouTube proof. Simply download the packages for your particular versions of Windows and install them. You can choose to install both the video driver and the wizard or the parts individually. This is important because it’s possible to use a VNC client to display the captured video instead of the ZoneScreen Wizard, but that’s a topic for another article. For most purposes, you’ll want to install both the video driver and the wizard on each PC.

On the server PC, the computer that you want to have more desktop space on, run the newly installed ZoneScreen executable and make sure that the “act as a server” option is selected.

1277-img1C.jpg

Click “next” and configure the TCP port that you want to use. You then select what local display device that you want to be extended onto the remote PC. ZoneScreen added a virtual display to my laptop as you can see here (this was the anomalous “device 2” that you saw in the MaxiVista section above):

1277-img1F.jpg

Based on the above information, I want to choose within ZoneScreen to redirect all video sent to display 2 across the network. Notice in the screenshot below that the dialog box gives a small preview of the chosen display device’s upper left corner to make sure that you’re selecting the proper display that you want to redirect. Choosing \\.\DISPLAY1 in my case shows that I have a word document open on that screen (this very article, in fact!), so I definitely don’t want to be redirecting that. Well, unless mirroring that display is what I want to do, but in this case I want an extension, not a mirror.

1277-img20.jpg

After changing the selection to \\.\DISPLAY2 I next select the resolution that I want the remote screen to be. In my case the remote screen is 1280 x 1024 at a 32 bit depth. I am then presented with some video options such as the per-second frame rate as well as if I want to fully refresh the screen after a certain interval. I typically accept the defaults.

1277-img21.jpg

Once I’m happy, I click “start” and my PC now thinks it has another monitor and is pumping video to that driver. The next step is to go to the client PC, the PC that I want to use as a “GUI dumb terminal”, and launch the ZoneScreen application. This time I select to use the PC as a client and select “next”. I then must choose the remote server PC’s TCP port and IP address and click next.

If all goes well, and there are not many reasons that it shouldn’t, you will see a window open up on the client machine that is the extended monitor on the server PC!

1277-img22.jpg

On the client you can select the “Options” menu and choose “Enter full-screen mode” and the window will stretch to fill the whole screen, covering all other items including the Windows task bar. You now have an extended screen on your primary PC spanning across the client PC!

Below is how my PC looked after the above actions were done. My laptop is in the center (obviously) flanked on the left by an external monitor that is physically connected to the laptop and on the right by a monitor connected to a Vista desktop on the network. The laptop is extended onto the Vista PC’s monitor. Notice how the command prompt on the laptop is partially on the primary display and partially on the Vista machine’s extended display.

1277-img24.jpg

You can connect to another PC’s screen via a 1394 cable as well. Windows Mobile devices can be connected to over ActiveSync and the cradle cable or even the IR port!

You can install more than one virtual display driver on the server by using the /installdisplay command line option with the zsserver.exe tool. You are only limited by the amount of RAM your server PC has.

In the course of writing this article, I emailed Vasily at the address listed on his website (www.ZoneOS.com) and was pleasantly surprised at getting a response in just a few hours, at a weekend. In fact, the above /installdisplay trick was one of the questions he answered. This is proof-positive that if you use ZoneScreen you won’t be totally without at least some form of support, even at the weekend! Then again, it’s so simple to use that you’ll likely not need support in the first place.

Notwithstanding this, the features of ZoneScreen are very few. There are no options to synchronize screensavers and hibernation between PCs. No advanced network compression features exist; in fact the screen refresh rate is pretty slow on the remote display. Movement is rather choppy making it impossible to have any kind of video displayed on the remote screen. The ZoneScreen video driver is XPDM and not the newer WDDM so Aero effects are disabled on Vista and 7 PCs (which may be fine for those without a visual sweet tooth).

There really doesn’t appear to be any kind of security mechanism within ZoneScreen, so if you’re security conscious you’ll have to rely on firewall rules on the OSs to prevent traffic over ZoneScreen’s port to and from any other PCs. Yes, that’s a paltry security measure, but better than nothing.

If you’re willing to deal with those shortcomings, ZoneScreen could help your day be more productive and cool. You can’t forget about being cool, and nothing is cooler than MOAR MONITORS!!

Neither I nor Simple Talk can be held responsible for the acute eye strain that you will experience when you build out a wall of screens rivaling anything ever seen at a Daft Punk concert. Oh, but this is just the tip of the iceberg! There are more topics to dive into concerning distributing your graphical computing experience across multiple PCs.  Those topics will be explored in more detail in coming articles.

If you’ll excuse me, I need to find my sunglasses and some eye drops.