Jak stwierdzić, czy aplikacja C ++ jest uruchomiona jako usługa systemu Windows?
Mamy aplikację konsolową, którą uruchamiamy z wiersza poleceń do debugowania, ale uruchamiamy ją również jako usługę NT do produkcji.
W tej chwili kod ma taką logikę:
if (__argc <= 1) {
assumeService();
} else {
assumeForgound();
}
Czy jest lepszy sposób na sprawdzenie, jak proces został uruchomiony? Jesteśmy projektem open source, więc za każdym razem, gdy otrzymujemy nowego programistę Windows, musimy wyjaśnić, że muszą określić-f
arg, aby zatrzymać połączenie aplikacji z kontrolerem usługi.
Co z sprawdzaniem procesu macierzystego?
Aktualizacja:Zapomniałem wspomnieć, że używamy C ++ (niezarządzanego).