У меня есть приложение C32 Win32, которое было написано как проект с графическим интерфейсом Windows, и теперь я пытаюсь сделать его гибридом Service / GUI.Я понимаю, что служба Windows не может / не должна иметь пользовательский интерфейс.Но позвольте мне объяснить, что у меня есть и для чего я стреляю.
ЧТО Я СЕЙЧАС - это приложение для Windows.Когда он запускается, он помещает значок в системный трей, который вы можете дважды щелкнуть, чтобы открыть графический интерфейс.Цель этого приложения - обрабатывать файлы, расположенные в указанном каталоге, по ночному расписанию.Графический интерфейс состоит из следующих элементов:
- Кнопка для запуска внепланового сканирования / процесса вручную.
- Кнопка для открытия диалогового окна для изменения настроек.
- AОкно списка для отображения сообщений о состоянии, отправленных из потока обработки.
- Пользовательское нарисованное окно для отображения данных изображения (обработка файла включает в себя создание и сохранение изображений).
- Строка состояния - времяпроцесс не запущен, он показывает обратный отсчет до следующего запланированного сканирования.Во время сканирования он также предоставляет некоторую обратную связь о состоянии, в том числе индикатор выполнения.
ЧТО Я СНИМАЮ ДЛЯ - это служба, которая будет работать при загрузке и не требуетпользователь для входа.Это будет состоять из запланированной обработки файлов.Однако, когда пользователь входит в систему, я все же хотел бы, чтобы иконка в трее была загружена и позволяла ему открывать графический интерфейс пользователя, как я описал выше, для мониторинга текущего состояния сервиса, изменения настроек, запуска сканирования вручную и отслеживания хода выполнения.сканирования.
Я уверен, что я видел подобные приложения - которые функционируют как сервис, даже когда я не вошел в систему, но все равно дают мне пользовательский интерфейс для работы, как только я войду в системув.
Я думаю, что вместо одного многопоточного приложения, которое отправляет сообщения в поток GUI из потока обработки, мне нужны два приложения - служба для выполнения обработки и приложение GUI дляпредоставлять визуальную обратную связь от Сервиса, а также отправлять сообщения в Сервис (например, для запуска сканирования вручную).Но я новичок в Службах Windows и не знаю, как это сделать.
Возможно также, что я совершенно не в своей базе, и Служба совсем не то, что я ищу.
Любая помощь / идеи / предложения будут с благодарностью!Спасибо.