Como sabemos se um aplicativo C ++ é lançado como um serviço do Windows?
Temos um aplicativo de console que lançamos a partir do prompt de comando para depuração, mas também o lançamos como um serviço NT para produção.
Agora, o código tem essa lógica:
if (__argc <= 1) {
assumeService();
} else {
assumeForgound();
}
Existe uma maneira melhor de verificar como o processo foi lançado? Somos um projeto de código aberto, então toda vez que obtemos um novo desenvolvedor do Windows, temos que explicar que eles devem especificar o-f
arg para parar o aplicativo de se conectar ao controlador de serviço.
Que tal verificar o processo pai?
Atualizar:Esqueci de mencionar que estamos usando o C ++ (não gerenciado).