Abra o navegador padrão como usuário padrão (C ++)

No momento, estou usando o ShellExecute "open" para abrir uma URL no navegador do usuário, mas com alguns problemas no Win7 e no Vista, porque o programa é elevado como um serviço.

Quando o ShellExecute abre o navegador, ele parece ler o perfil "Local Admin" em vez do usuário. Por exemplo, se o usuário no teclado tiver o Firefox como navegador padrão, poderá abrir o IE (que é o padrão do administrador).

Eu sei que o verbo "runas" pode ser usado para elevar, mas como você faz o contrário? Existe uma maneira de abrir um URL no navegador padrão na área de trabalho de um usuário padrão a partir de um serviço?

questionAnswers(3)

yourAnswerToTheQuestion