Здравствуйте, Qrdl, Вы писали:
Q>Как определить запущена программа как сервис или как обычное приложение без анализа командной строки
Не самое красивое решение, но первое, что пришло в голову:
если процесс запущен не как сервис, StartServiceCtrlDispatcher завершится с ошибкой 0х0427. Создай еще один поток, который будет проверять, как работает StartServiceCtrlDispatcher или завершился с ошибкой.
Второе, что пришло в голову:
проверяй под какой учетной записью работает процесс, обычно сервисы создают для работы под LocalSystem.