Dirty workaround in XP: 1. Start -> Run -> services.msc, 2. Right click your service, 3. select property, 4. select logon, 5. check "Allow Service to interact with desktop". In Vista (also a better solution): 1. Steal a token from the current interactive user, 2. Spawn the process by CreateProcessAsUser() API
http://www.cnblogs.com/nbwzy/archive/2008/09/24/732917.html
http://www.cnblogs.com/adam/archive/2007/02/28/659318.html
1. Start -> Run -> services.msc,
2. Right click your service,
3. select property,
4. select logon,
5. check "Allow Service to interact with desktop".
In Vista (also a better solution):
1. Steal a token from the current interactive user,
2. Spawn the process by CreateProcessAsUser() API