This is part 6 of a series, previous posts: part 1
In the end of the previous post in the series I wrote this part will be about updating the program while it's running and updating the service itself, this will wait until the next post because there is a small limitation to our auto-update service I didn't talk about – you can't interact with the user from a Windows service.
Showing user interface from a service has been "not recommended" for a long time and disabled by default – but it takes just one checkbox to enable it and it will look like it's working, but it won't work with terminal services (the UI will show only on the screen connected to the actual computer and not over the network) and it won't work with Window XP fast user switching (the UI will always show only on the desktop of the first use to login) and then on Vista it won't work at all (the UI will show on a virtual desktop used only for services that is not accessible to any user).
The standard solution for this problem is to run a small non-service program that will communicate with the service and act as its user interface.
In the case of yaTimer – the time management software I'm selling, I wanted the user to be able to keep working while the system updates itself – so I already have a program running on the user's desktop – my application, no need to write another service front-end.
Unfortunately this forces me to deal with the problem of updating a program while it is running – but there is an easy way to do this, and I'll talk about it in the next part of this series.
posted @ Sunday, July 15, 2007 2:51 PM