Log in

View Full Version : Why ActiveSync- or Remove Programs-based uninstalling may not be sufficient?


Menneisyys
09-02-2005, 10:29 AM
It's a frequently asked question whether the above two (similar) ways of removing programs from a Pocket PC suffices or not. Unfortunately, the answer is no. Why, and what's the solution?

First, let's have a look at the reasons for this.

A lot of applications, for example, puts an invocation record in the system database DB_notify_events. Upon uninstall, these records aren't removed in a lot of cases, which cause annoying error messages or, in some cases, even system hangs upon reboots. Examples of these programs are old(er) versions of eWallet and Skype (http://www.pocketpcthoughts.com/forums/viewtopic.php?t=36471).

Some other applications even install their driver DLL's, which then they fail to remove - these files will still be in the system, taking up resources and sometimes causing incompatibility problems long after you remove the host apps. An example of them is even the latest (1.1.0.44) version of NetRemote IR (http://www.promixis.com/products.php?section=netremote) (also see this roundup on remote IR apps (http://pocketpcmag.com/forum/topic.asp?TOPIC_ID=17874) - I've dedicated some more space there for the CIR.dll problem). Another example of, in this respect, problematic applications is Running Voice GSM (RVGSM) 3.2. It I've dedicated a section to this problem in my article on Internet connection manager utilities (http://pocketpcmag.com/forum/topic.asp?TOPIC_ID=17837):

'Please note that, in addition to the relocation hacks I’ve described here (http://www.pocketpcthoughts.com/forums/viewtopic.php?t=36674) (you will need them if you want to free up some 2 Mbytes of RAM!), you should keep in mind that, after uninstall, comswitch.exe and the driver DLL, PPMuxDriver.dll, remains in the device; so does DataMonitor.exe. It, however, removes the four new connection types from the registry and the GPRS connection counter won’t work any more either. The uninstaller doesn’t delete the four HKEY_LOCAL_MACHINE\Drivers\BuiltIn\PP* drivers it registers (all referring to PPMuxDriver.dll) in the Registry; this is why the DLL file can’t be deleted. You must delete these registry keys by hand and reboot the device. After this, you’ll be able to remove the two remaining files.'

Unfortunately, neither Pocket Mechanic nor Space Reclaimer find these problems. The latest version (2.2.11) of SKTools is able to find missing DB_notify_events references (in my roundup of system cleaning utilities (http://pocketpcmag.com/forum/topic.asp?TOPIC_ID=17596), I've tested the previous, 2.2.10 version; after publishing the article, the authors of SKTools have at once implemented some of the missing functionality I had pinpointed. One of them was the problem of the missing DB_notify_events references), but is (still) unable to identify for example not deleted system-level driver DLL's.

This means that, in cases, you must manually scrutinize the Registry and the DB_notify_events system database (unless you use the latest SKTools) of your PDA to find stale DLL's and services because the current, built-in, automatic ways of program uninstallation are plain weak/insufficient.

This is definitely not an easy task - in cases, a hard reset and reinstalling your apps / restoring an earlier, safe backup will be easier. (I do the latter during testing: when I have finished a test of, say, 5-6 programs at the same time, I just hard reset the PPC and reload a working, configured backup file so that I don't need to reconfigure anything/reinstall my favourite third-party apps).

You may also want to give a try to SKTracker (http://s-k-tools.com/) (its old name was Remover - it's much more widely known on that name). It works like the Ashampoo Uninstaller Suite (http://www.ashampoo.com/frontend/products/php/product.php?session_langid=2&idstring=0103) on the desktop PC and is pretty good. I, however, haven't tested it with the most problematic cases (for example, RVGSM uninstall) outlined above because the trial version is useless.