Каково различие между службой Windows и стандартом exe?
Служба Windows всегда работает, как только компьютер запускается (до тех пор, пока он настроен настроен). Стандартный EXE работает только тогда, когда пользователь вошел в систему, и остановится, если пользователь выходит из системы.
Вы бы использовали службу Windows для вещей, которые всегда нужно запустить, даже если никто не вошел в систему.
Вы бы использовали стандартные EXE для программ, которые пользователь будет работать во время вошедшего в систему.
Служба Windows имеет специальную функцию ServiceMain
и для функционирования в качестве службы должна надлежащим образом реагировать на команды Service Control Manager (SCM). С другой стороны, обычный исполняемый файл имеет функцию main
или WinMain
и не должен отвечать ни на какие команды управления.
Служба является (обычно) стандартным exe без UI. Она может быть запущена даже в том случае, если на машине нет зарегистрированного пользователя, а права доступа и вид файловой системы не зависят от того, какой пользователь зарегистрирован.
Если вы говорите о внедрении фоновой операции, вот критерии, которые я бы порекомендовал выбрать услугу или менее .exe:
Выберите EXE, если:
Выберите сервис, если:
Услуги могут легко быть дырами безопасности, поэтому предпочитают услуги .exe на услуги. Иногда вам понадобится обоим. Вирусный контролер должен иметь возможность получить доступ к каждому файлу в файловой системе (который текущий пользователь может не иметь в состоянии сделать), но также необходимо предоставить информацию пользователям в виде уведомлений / всплывающих окна и инструмента иконка панели задач. Услуги не могут взаимодействовать с GUI пользователя напрямую. Они могут использовать стандартные услуги Windows IPC (межпроцессные связи), такие как трубы и общие регионы памяти. Такие инструменты обычно имеют оба сервис, так и для каждого пользователя Windless .exe, который связывается со службой с использованием труб Windows или общие регионы памяти.
Получите «Программировать безопасность Windows» Кит Браун, если вы хотите погрузиться в эти темы.