Extreme Makeover - How to rescue a Pocket PC with partially-damaged display screen
====>SiteMap of this Blog<===
Extreme Makeover - How to rescue a Pocket PC with partially-damaged display screen
Pocket PC is a fragile device. Display screen is Achilles' heel, susceptible to scratches. Worse, if the device is dropped on the floor or ground, the screen may be partially damaged (or completely broken, if that day is really not your day). My officemate actually successfully destroyed the screen of an iPAQ 4155 device.
Besides the obvious choice of trashing the device, or sending it for repair, can we somewhat DIY and still make use of it? I actually do not have the chance myself, but being able to help an unlucky guy who posted a question in a newsgroup:
My touchscreen is a little damaged. After an accidental hard reset it is not possible to go successfully the adjust routine through. I can't start windows mobile (2003). Is there a possibility to start windows and avoid the adjust procedure?
His screen was not completely broken, but he could not use the device, because there was no way he could pass the "screen align" procedure after a hard-reset. My first thought was like: If he could not pass the procedure, why not forcibly kill it? The calibration data is stored under a predefine registry key, then he could manually populate the registry himself.
What tools?
The tools are not hard to find, just remote process viewer and remote regeditor, which are shipped along with Microsoft Embedded Tools (free) or Visual Studio (common). The catch is ActiveSync must be up and running for the remote tools to be able to connect to the device. This should not the a problem, as the ActiveSync components should be more close to OS than the calibration process.
What registry key?
The registry key is not publicly documented, and I do not think either Microsoft or OEMs have any reason to document it. So the correct way to locate the registry key is to find another device with the same model, do a search, then copy the values and names. In my Sprint PPC6601 device, the key is HKLM\HARDWARE\DEVICEMAP\TOUCH, and value name is
CalibrationData, with value data "507,497 150,763 153,230 886,241 871,767".
The guy followed my suggestion, managed to kill the calibration program and populated the registry key. He also contributed another interesting value under that key:
"MaxCalError"=dword:50 - for less sensibility and it works.
Which process to kill?
The final question is how to know which process is showing the "screen align" window. You can guess from the processes listed by remote process viewer. A more rational approach needs another remote tool: the remote spy, which shows all windows in the device. You can easily locate the "screen align" window from the windows captured by remote spy, find which process ID owns the window, then switch to remote process viwer to locate the process.
Wrap Up
There must be a way for Shell to decide not to show the touch screen calibration window upon rebooting. Most probably such information is stored under a predefined registry key. If so, there is really no need to kill the "align screen" window. Instead, using remote regeditor to populate some values is sufficient to rescue your device.