The problem is the "displaying" part. On kernel below v6, setting the service property "Allow service to interact with the desktop", made it easy to show popups from the service. But from Vista, there is a Session 0, where the services run, and
you will be not able to[
^] interact with the user session (if any).
Thus you have to make two projects in your solution: one service, and a client that needs to be started by the user (or automatically on logon). It will act like a client-server architecture, but on the same machine. You can use several inter-process communication approaches, but
WCF[
^] is a good one. The client will subscribe to the WCF service on start, and thus
can receive calls[
^] from service to show the message.