The Secret of Perfect Pocket PC Screenshots

It was a year ago that I’ve published my well-known (for example, it made to Sticky in the MobilitySite Applications forum) Making screenshots of the Pocket PC (alternates: MobilitySite, AximSite, PPCT, FirstLoox, BrightHand, PocketMatrix). Now that WM5 is out, I found it absolutely necessary to rewrite the old article to have, for example, WM5- and more gaming-related information.

 In this article, you’ll find a LOT of secrets never published anywhere. You may already have been aware of all Compaq / HP iPAQ’s being able to take screenshots by themselves, but, for example, have you been aware of that you can take auto shots (shots taken one after another, without human intervention) by two Pocket PC-based screen capture applications, and with additional three with some manual “hacking” (don’t be afraid, it’ll be VERY easy!)? Did you know that, however much Vidya Pocket Screen Capture doesn't allow for suppressing the pretty annoying camera sound, you can get rid of it easily, by just deleting the WAV sound file it's stored in? Were you aware of the fact that many screen grabber applications that are considered NOT to be VGA compatible are able to be "forced" into VGA mode so that they take excellent VGA screenshots? Did you know Pocket Informant already has a built-in screen capture utility and the same developer has also released a free, stand-alone version excellent for taking periodic auto-screenshots? The list continues… Yes, you’ll find an explanation of all these in this article – and a lot more, never-before-published tips and tricks. This means that, as with all my similar roundups, this one will reveal a lot of secrets of the Pocket PC – read on!

Introduction: The basics

What's the point in writing so big an article on all these questions, you may ask. Isn't it as easy as just downloading an arbitrary screen grabber application off the Net, installing and starting it and just pressing its hotkey to take a shot (if it's a button based-application) or, if it has a timer, just quickly switch (before the timer is fired) to the application you'd like to take a shot of?

Yes, in many cases, it'll work, particularly if you "only" have a QVGA device, of which you'd only like to take screenshots in the default Portrait mode. As soon as, however, you will need to take shots of

  1. full-screen games
  2. VGA screens
  3. Landscape screens
  4. menus
  5. screens that depend on the actual Internet (IP) address of the device
  6. screens of the "HTC Camera" built-in camera client application (if any)

you will find that the screen gabber application you've chosen just doesn't work. It's particularly in these cases that you'll find this writeup useful.

 

Classification of screen grabber applications

First and foremost, there are two main kinds of screen capturer applications. The first group of them uses an active ActiveSync (or, in cases, any kind of TCP/IP (Internet) connection) and initiates screen grabbing from a desktop Windows PC; the second group only runs on the Pocket PC itself and doesn’t need any kind of desktop-based client. First, I elaborate on the first group.

1. PC & ActiveSync-based capture solutions

1.1 Introduction

You may already know at least SOTi Pocket Controller, the great PC-based application that makes it possible to control your Pocket PC hooked up to your PC (or being anywhere in the world if it has an Internet connection and your desktop is able to connect to it). SOTi Pocket Controller is one of the many applications that are not only controller apps but also themselves are able to take screenshots of the actual screen content of the connected Pocket PC device. In this article, I won’t discuss any of these programs (again, programs that not only allow for seeing the screen of your Pocket PC on your desktop computer, but also control it) because I’ve already done so. Please read this article for more information on how these applications can be used. Make sure you pay special attention to following the links to Part I of the series.

Seeing how I emphasized the word ‘control’, you may have already guessed there are desktop-based applications that don’t let for controlling the PDA (that is, you can’t use the PC’s keyboard and mouse to directly enter text / click objects on the virtual screen of the PDA), “only” passively show its screen. Or, more precisely, they don’t show it, “only” make a (savable) screenshot of it whenever you ask them to do so. This also means that, while “controller” applications (as they also need to show almost the same picture on the desktop as is on the PDA, with the least possible delay) may hugely slow down how the Pocket PC can be operated, desktop-based clients that only transfer the contents of the screen between the two devices can result in a much faster and more responsive Pocket PC. In this respect, solely screen capture apps (again, ones that can NOT be used to control the device) can be infinitely better: as they only transfer information between the PC and the Pocket PC when you do instruct them to take a screenshot, they don’t slow down the Pocket PC.

These applications (as with the “controller” type of applications; from now on, I’ll only talk about the ones that can’t control) all have the advantage of being able to capture (almost) anything. If you use a Pocket PC-only capture application, a lot of things may prevent you from taking screenshots on your device (for example, the given application’s blocking all hardware buttons or the inability to capture menus because they just close when you press the shortcut to make a screenshot). These problems are non-existent on applications that also have a desktop component. Then, you can, say, just open the menu or start the game you want to make shots of and just instruct the PC-side screenshot grabber to do the job when the screen / dialog you wanted to take a shot of is displayed.

Desktop-based screen capturer (or, again, controller) applications refuse to work in very-very few cases; for example,

  1. when the given application (for example, Fathammer’s excellent 2700G-enabled 3D golf title, Toy Golf – it won’t start if the PDA is connected to the desktop PC via ActiveSync; the situation is the same with some other games that rely on the Intel 2700G GPU; for example, GeoRally EX) because it hates ActiveSync to be active. In this case, you can only make screenshots with Pocket PC-based tools. (In most cases, however, with a bit of playing with the time you connect the PPC to the desktop, you can still take screenshots through ActiveSync even with games like Toy Golf. For example, in order to take screenshots of Toy Golf from the desktop PC, start the game without the Pocket PC connected to the computer and only connect after the first “Loading” screen. Then, any server-side application will work – both specialized screen capturer apps and, as can be seen for example here, “full” Pocket PC controllers too. Note that, as far as this screenshot and the VGA 2700G-enabled devices – Dell Axim x50v / x51v – are concerned, if you use a plain screenshot tool, prefer the ViTO one (reviewed in this roundup) and start the game from native VGA mode so that the screenshots will be full-resolution ones. Forget GetPDAScreen, which, even as of version 1.1, is totally incompatible with VGA and will only take low-res screenshots.
  2. when the additional network connection ActiveSync creates can cause problems. For example, if you take screenshots of an application or a game that displays or relies on for example a local network address, you can’t use an ActiveSync-based tool. The sole reason for this is that ActiveSync (as has also been pointed out by several of my ActiveSync & networking-related articles; for example, this) assigns another IP (Internet) address to the device. Then, the Pocket PC will have two addresses: one in the “real” network it’s supposed to talk to the outer world (in the following case, other PDA’s running the same game) and the other is that of ActiveSync. An example screenshot of this is here, where I took a screenshot of pocketadventures.com’s Travel Collection (also see The Definitive Multiplayer PPC Game Roundup). There, two IP’s are shown; one of them being assigned by ActiveSync, while the other being the “real” address of the device.
    You will also need to keep this in mind when taking screenshots (or, for that matter, operating) local area network-based programs like the excellent 4Talk (review here) , or, when taking screenshots of for example the IP configuration screen of vxUtil, probably the best networking tool on the Pocket PC.

 

In most (all?) of the other cases, desktop-based screenshot taking will work just great.

1.2 Screen grabber / saver, desktop-based applications

There are, as far as user-friendly apps are concerned, two such applications (and one strictly for Pocket PC Phone Edition devices) right now (again, the rest also have controlling capabilities and, therefore, aren’t listen in here – check out the above roundup for a complete overview of them): GetPDAScreen and VITO ScreenCapture, both free and, unfortunately, both incompatible with the standard (SE) VGA mode of WM2003SE/WM5 VGA Pocket PC’s.

Note that Microsoft also has a (free - it comes with the free eVC 4.0) remote screen capturer application. It, however, is far from being user-friendly (particularly the connection initiation is a real pain in the back as it requires the user to always use different port addresses and, therefore, doesn't really allow for static .lnk files just to invoke \Windows\cemgrc.exe on the PDA) and offers really nothing additional compared to these applications. It supports landscape and native VGA as can be seen in here. it is, however, hopelessly QVGA in standard (SE) VGA and, therefore, not at all recommended.

If you really want to give it a try, you need to know the following: install eVC and execute c:\Program Files\Common Files\Microsoft Shared\Windows CE Tools\Platman\bin\cezoom.exe. Go to Connection / Configure CE Platform Manager and, after highlighting "Default Device" under "Windows CE .NET Default Platform" (there may/will be other top-level roots), click Properties. Change the settings to TCP/IP... in the top and Manual Server in the bottom drop-down menu. Click OK two times and select Connection / Connect to Device, highlight the same device and click OK. Now, you'll be presented the two DLL's and the one EXE file you'll need to copy from the c:\Program Files\Common Files\Microsoft Shared\Windows CE Tools\Platman\target\ subdirectory according to your CPU type to the \Windows subdirectory on your PDA. In the bottommost, non-editable textfield, you'll be presented the parameters (the IP address of your PC and the port the server will be listening on) you will need to pass to cemgrc.exe on your handheld. For example, in this example, you must supply the "/T:TCPIPC.DLL /Q /D:169.254.2.2:3359" parameters to cemgrc.exe; for example, via a link file with the following content:

99#"\WINDOWS\cemgrc.exe" /T:TCPIPC.DLL /Q /D:169.254.2.2:3359

Then, start the server on the PDA and immediately after this the client on the PC. Click OK and the connection will be built up. You can any time refresh the view by pressing F5 (or Connection / Refresh).

Note that the port number will change every time you reconnect the PDA to the desktop PC; this is one of the reasons I don't recommend this solution at all for simple screen grabbing purposes and haven’t even included in the comparison chart.

1.2.1 GetPDAScreen 1.1 by NewMad

GetPDAScreen11VGA.png

Its biggest problem is that it’s strictly QVGA (it doesn’t even take full-resolution shots in native VGA mode) and Portrait only. (The latter, fortunately, doesn’t mean it won’t be able to make screenshots of (most) games running in Landscape full screen – it will). It only takes QVGA shots of VGA devices, which is unacceptable in most cases. If you force \Windows\GetScreen.exe (the EXE component the desktop client, behind the scenes, deploys on the Pocket PC to grab the screen and send it over the ActiveSync connection) into VGA (with Tweaks2k2.NET or just copying the standard .mui file into \Windows), the result will only contain the upper left quarter of the screen as can also be seen in this screenshot.

Therefore, you will only want to use it on QVGA devices, preferably in Portrait only (or with landscape games).

1.2.2 VITO ScreenCapture 1.0

VITOMainScreen.png

This application doesn’t support taking full-resolution screenshots of VGA devices in SE (standard) VGA either; only in the native VGA mode. It supports non-Portrait screen orientations. That is, it’s much more useful than GetPDAScreen. It is only able to export screenshots into BMP files; therefore, you will want to convert them further with, say, ImageMagick on the desktop or XnView on the Pocket PC (see the tips in the Full Roundup of Picture Viewers/Editors for the Pocket PC for more information & tips on conversion!) to the much more compact, say, PNG format.

1.2.3 Jeyo Mobile Companion 1.1

JeyoCompanionScreenshot.png

This application is a well-known, excellent Pocket PC Phone Edition SMS / contacts manager for the PC - highly recommended if you want to, say, backup your SMS messages or call history to your desktop PC or manage your phone contacts directly on the PC.

Unfortunately, it is only compatible with Pocket PC Phone Edition devices - that is, not with standard, phone-less Pocket PC's.

It, in addition to PIM handling, also has screen capturing capabilities, which is accessible via Tools / Capture Screen. It captures landscape screens without problems and is able to directly save images to both BMP and JPG files.

While, by default, it's not capable of capturing VGA screens in standard (SE) mode, forcing \Windows\CommMan.exe (the file auto-deployed by Jeyo to the PDA) into VGA does the trick. That is, this is the only desktop-based application that is able to correctly capture the VGA screen of, say, the VGA HTC Universal. That is, if you have a HTC Universal, you'll want to give it a try.