У меня есть приложение C #, которое работает как служба Windows, контролирующая соединения сокетов и другие вещи. Кроме того, существует еще одно приложение Windows Forms для управления и настройки этой службы (системная панель с запуском, остановкой, отображением формы с параметрами конфигурации).
Я использую удаленное взаимодействие .net для IPC, и это было нормально, но теперь я хочу показать реальный трафик и другие отчеты, а удаленное взаимодействие не будет соответствовать моим требованиям к производительности. Поэтому я хочу объединить оба приложения в одно.
Вот в чем проблема:
Когда я запустил форму из службы Windows, ничего не произошло. Погуглил и обнаружил, что мне нужно щелкнуть службу правой кнопкой мыши, перейти в раздел «Вход в систему» и установить флажок «Разрешить службе взаимодействовать с рабочим столом». Так как я не хочу просить своих пользователей делать это, я снова начал поиск в Google кода, чтобы установить эту опцию в пользовательском regedit во время установки. Проблема в том, что даже установка этой опции не работает. Мне нужно открыть параметры входа в систему службы (он отмечен), снять флажок и снова проверить.
Итак, как это решить? Как лучше всего сделать так, чтобы служба Windows с элементом управления на панели задач в одном процессе была доступна любому входящему в систему пользователю?
ОБНОВЛЕНИЕ: Спасибо за комментарии, ребята. Я согласен, что лучше использовать IPC, и я знаю, что смешивать службы Windows и пользовательские интерфейсы - это плохо. Хотя я хочу знать, как это сделать.