There is no restriction that windows service should not have any
GUI. Windows services can have GUI. But if it has, it was shown up
in Service 0. It was possible in earlier versions of Windows before
Vista. Lets have a detailed discussion on it.
A logon session is created
whenever a user logs in to Windows. Each session has a Session ID.
All the windows services will run in Session 0.
In Session 0, a user can see
and interact with the graphical elements of any program running
there, including those created by Windows Services in earlier
versions like Windows NT, 2000, XP and Server 2003.
Later due to security
concerns, Microsoft isolated the Session 0. And the impact is
services cannot show their GUI. This is one of the case.
Consider, A service attempts
to create a user interface (UI), such as a dialog box, in
Session 0. Because the user is not running in
Session 0 due to the isolation of service 0, he or she never
sees the UI and therefore cannot provide the input that the service
is looking for. The service appears to stop functioning
because it is waiting for a user response that does not occur.
Due to this isolation, services
cannot communicate with the applications through Windows message
and vice versa. We use RPC, Interactive Services Detection Service
(ISDS) and IPC for the communication between services and