Комментарии 4
имхо стоит прочитать статью ATL Services в MSDN, прежде чем велосипедить…
Прежде всего, спасибо за материал, изложен хорошо и последовательно.
Но хотелось бы заметить что никакого жесткого запрета на интерактивные сервисы нет, они по-прежнему работают, совместимость-то надо сохранять. Просто начиная с Висты, если сервис с флагом SERVICE_INTERACTIVE_PROCESS попытается показать какое-то окошко, будь-то MessageBox, собственное отрисованное окно или дочерний процесс система сообщит об этом:
Далее, по желанию пользователя произойдет переход в нулевую сессию, где он сможет увидеть gui.
Но хотелось бы заметить что никакого жесткого запрета на интерактивные сервисы нет, они по-прежнему работают, совместимость-то надо сохранять. Просто начиная с Висты, если сервис с флагом SERVICE_INTERACTIVE_PROCESS попытается показать какое-то окошко, будь-то MessageBox, собственное отрисованное окно или дочерний процесс система сообщит об этом:
Далее, по желанию пользователя произойдет переход в нулевую сессию, где он сможет увидеть gui.
Спасибо, не знал.
Так как основная система — Win2k3 под вистой/семеркой и соответствующих серверных версиях не проверял. Но в MSDN сказано достаточно жестко:
Important Services cannot directly interact with a user as of Windows Vista. Therefore, the techniques mentioned in the section titled Using an Interactive Service should not be used in new code.
Да и запустить процесс от имени пользователя не так сложно.
Наверное про это стоит так же заметку написать.
Так как основная система — Win2k3 под вистой/семеркой и соответствующих серверных версиях не проверял. Но в MSDN сказано достаточно жестко:
Important Services cannot directly interact with a user as of Windows Vista. Therefore, the techniques mentioned in the section titled Using an Interactive Service should not be used in new code.
Да и запустить процесс от имени пользователя не так сложно.
Наверное про это стоит так же заметку написать.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Реализация сервисов в MSWin