AndyC wrote: The trick is to not make the updater require Admin rights (at least not initially).
The sequence of events should go:
- Initial process detects need to update.
- Updater is launched as standard user
- Initial process quits
- Updater uses COM elevation to create object with Administrative rights
- COM object updates files
- Control returns back to updater process
- Updater launches new version of initial process
If you don't want to use COM elevation, you could introduce a third process, but that is rather untidy and may lead to issues it you want Logo certification.
Oh, alright, now I see what you mean.
But the only problem is that the updater program is already 99% written. Does it have to be rewritten to use this COM Elevation method?
I humbly admit that I don't know much about COM beyond some of the most basic concepts of aquiring interface pointers and checking return values.