27 votes

En quoi un service Windows diffère d'un exe standard?

Quelle est la différence entre un service Windows et un exe standard?

30voto

Eric J. Points 73338

Un service Windows s'exécute toujours une fois que l'ordinateur démarre (tant qu'il est configuré de la sorte). Un EXE standard ne s'exécute que lorsqu'un utilisateur est connecté et s'arrête si l'utilisateur se déconnecte.

Vous utiliseriez un service Windows pour les choses qui doivent toujours être exécutées même si personne n'est connecté.

Vous utiliseriez un EXE standard pour les programmes qu'un utilisateur exécutera lorsqu'il sera connecté.

26voto

Greg Hewgill Points 356191

Un service Windows a une fonction spéciale ServiceMain et doit répondre correctement aux commandes du Gestionnaire de contrôle des services (SCM) pour être fonctionnel en tant que service. D'un autre côté, un exécutable standard a une fonction main ou WinMain et n'a pas besoin de répondre à des commandes de contrôle particulières.

5voto

David Gladfelter Points 2756

Si vous parlez de la mise en œuvre d'une opération en arrière-plan, voici les critères que je vous recommande de choisir un service ou d'une fenêtre-moins .exe:

Choisissez un fichier exe si:

  • Vous en avez besoin pour s'exécuter sur une base par utilisateur et uniquement lorsqu'un utilisateur est connecté
  • Vous avez besoin d'interagir avec le bureau de Windows (icônes de notification, etc.)
  • Il a besoin de tous les privilèges de l'utilisateur connecté (pas plus, pas moins)

Choisir un service si:

  • Il peut être nécessaire d'exécuter lorsque aucun utilisateur n'est connecté
  • Il n'a généralement pas de besoin de données par utilisateur ou d'un privilège
  • Il communique uniquement avec le réseau
  • Il doit exposer de nouvelles "sécurisable" des objets. Les objets qui ont leur propre Déclarative Listes de Contrôle d'Accès (DACL) qui limite l'accès à certains comptes/groupes.
  • Il a besoin d'autorisations spéciales qui peuvent ne pas être disponibles pour l'utilisateur connecté.

Les Services peuvent être facilement trous de sécurité, de sorte que préférez .exe de services. Parfois, vous aurez besoin des deux. Un anti-virus doit être en mesure d'accéder à tous les fichiers du système de fichiers (dont l'utilisateur actuel peut ne pas être en mesure de le faire), mais il doit également fournir des informations à l'utilisateur sous la forme de boîtes de dialogue de notification/pop-ups et un outil d'icône de barre d'état. Les Services ne peuvent pas interagir avec l'utilisateur de l'interface graphique utilisateur. Ils peuvent utiliser le Windows standard IPC (inter-process communication) des services tels que des tuyaux et de la mémoire partagée régions. De tels outils ont généralement à la fois un service et par utilisateur sans fenêtre .exe qui communique avec le service de l'aide de Windows tuyaux ou de la mémoire partagée régions.

Obtenez de Programmation "Sécurité de Windows" par Keith Brown si vous voulez plonger dans ces thèmes.

2voto

John Knoeller Points 20754

Un service est (généralement) un exe standard sans interface utilisateur. Il peut s'exécuter même quand aucun utilisateur n'est connecté à la machine, et ses droits d'accès et la vue du système de fichiers ne dépendent pas de l'utilisateur connecté.

0voto

unixman83 Points 2669

Du point de vue de l'EXE Binaire et du point de vue du Compilateur C de Bibliothèque, un service Windows ressemble exactement à un standard d'Unix programme ou un programme console Windows. j'.e à main() point d'entrée. Ce qui rend un service, c'est la façon dont il est chargé / invoqués par Microsoft Windows (à partir de la base de registre, généralement au démarrage). Un service peut (et doit) dites le SC.exe application [Gestionnaire de Contrôle des Services par les appels d'API de Windows, que le service est démarré, arrêté, suspendu, etc.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X