Я посмотрел и не смог найти простой вопрос:
Как служба Windows может определить имя службы, для которой она была запущена?
Я знаю, что установка может взломать реестр и добавить аргумент командной строки, но логически кажется, что должно быть ненужным, поэтому этот вопрос.
Я надеюсь запустить несколько копий одного двоичного файла более аккуратно, чем взломать реестр.
Редактировать
Это написано на C #. Мои приложения Main () точка входа делает разные вещи, в зависимости от
аргументы командной строки:
- Установка или удаление службы. Командная строка может предоставлять не по умолчанию
ServiceName и может изменять количество рабочих потоков.
- Запустить как исполняемый файл командной строки (для отладки),
- Запускать как «Служба Windows». Здесь он создает экземпляр моего ServiceBase -приобретенного
затем вызывает System.ServiceProcess.ServiceBase.Run (экземпляр);
В настоящее время шаг установки добавляет имя службы и число потоков к ImagePath в реестре, чтобы приложение могло определить его ServiceName.