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