Comment puis-je exécuter une application Windows avant qu’un utilisateur ne se soit connecté?

Duplication possible:
Comment une application WPF peut-elle être lancée avant que je me connecte à Windows?

J’ai écrit une application en C #. Je veux exécuter mon application avant de me connecter à Windows (après le préchargement du système d’exploitation Windows). Comment puis je faire ça?

La seule façon de procéder consiste à créer un service Windows au lieu d’une application. Les services n’étant pas des applications en mode utilisateur, ils sont autorisés à s’exécuter même si aucun utilisateur n’est connecté.

Cependant, cela a d’autres réserves. La plupart des développeurs apprennent uniquement ce qui précède et pensent qu’ils doivent écrire un service Windows. C’est incorrect: en réalité, il est assez rare que vous ayez réellement besoin d’en écrire un. Comme mentionné ci-dessus, ils ne sont pas des applications en mode utilisateur et ne peuvent donc afficher aucun type d’interface utilisateur . Ils ne sont conçus que pour s’exécuter en arrière-plan et pour les cas où l’utilisateur n’a pas besoin d’interagir avec eux, sauf pour les arrêter et les démarrer rarement.

Si vous avez déjà une application standard avec une interface utilisateur, la création d’un service Windows n’est pas une option pour vous . Votre application ne portera pas sur un service, et vous serez de retour en posant une demi-douzaine de questions sur le comportement apparemment inexpliqué, les pannes du système et l’impossibilité de faire diverses choses. Un service ne remplace pas une application: c’est un produit entièrement différent qui nécessite une méthodologie de conception complètement différente.

Quelles sont donc vos options? Eh bien, fondamentalement rien. Windows est un système d’exploitation multi-utilisateur. Il est impossible d’exécuter une application en mode utilisateur sans qu’un utilisateur soit connecté . La meilleure chose à faire est d’append votre application au dossier «Démarrage» partagé par tous les comptes d’utilisateur, puis de configurer l’ordinateur pour qu’il connecte automatiquement un utilisateur particulier au démarrage. Ainsi, l’ordinateur ne fonctionnera jamais sans qu’un utilisateur ne soit connecté, et donc sans que votre application s’exécute également.

Pour ce faire, vous devez configurer les stratégies de groupe sur les ordinateurs, ce qui vous obligera à y accéder de manière administrative et ne fonctionnera pas sur les ordinateurs que vous ne possédez pas (tels que les machines appartenant aux clients). C’est vraiment une bonne chose, car cette conception est extrêmement mauvaise pour une application destinée à un usage général.

Posez plus de questions sur la configuration des stratégies de groupe sur notre site partenaire conçu pour les administrateurs système, Server Fault .

Ce doit être un service à exécuter avant la connexion.

Il doit s’agir d’un service Windows et le service doit être installé / configuré en tant que “démarrage automatique”.