Silent deinstallation from a Windows service
Posted: Sun Dec 06, 2009 5:53 am
I'm trying to run a silent deinstallation from a service, but I'm hitting a problem with Windows XP. I was wondering if anyone has seen this.
On installation, I'm storing the location of the installer/deinstaller (from the variable $UNINSTALLINK$) in the registry.
My service then picks up this value, and executes the package with the "/s MODIFY=FALSE REMOVE=TRUE UNINSTALL=YES" parameter string, using the system ShellExecute call.
The code always works if fired off ineractively from a normal program. It also works from a service under Vista. But it doesn't work from a service under Windows XP, even when the return value of ShellExecute indicates success. Anyone have any ideas?
Thanks,
John B
On installation, I'm storing the location of the installer/deinstaller (from the variable $UNINSTALLINK$) in the registry.
My service then picks up this value, and executes the package with the "/s MODIFY=FALSE REMOVE=TRUE UNINSTALL=YES" parameter string, using the system ShellExecute call.
The code always works if fired off ineractively from a normal program. It also works from a service under Vista. But it doesn't work from a service under Windows XP, even when the return value of ShellExecute indicates success. Anyone have any ideas?
Thanks,
John B