Como posso saber se o processo atual é um serviço ou não (C ++, Win32)?

Como posso saber se o aplicativo em que meu código está sendo executado, está em um serviço ou aplicativo? Por que eu quero saber isso - estou escrevendo algum código que é injetado no aplicativo de destino e esse código não tem como saber essas informações antecipadamente, portanto, ele deve trabalhar sozinho.

Não posso confiar em nenhum código chamado do gerenciador de controle de serviço, iniciar, parar ou parâmetros da linha de comando.

Atualmente estou olhandoGetConsoleWindow() que espero voltarNULL para um serviço (sem console) e um identificador de janela para qualquer aplicativo (possui um console). Não tenho certeza de quão válida é essa suposição.

Alguma idéia para uma solução melhor?

questionAnswers(4)

yourAnswerToTheQuestion