Je dois effectuer la vérification dans une méthode contenue dans une bibliothèque partagée référencée par une application Windows Forms et un service Windows. Lorsque nous faisons le check-in en mode console, je dois autoriser les boîtes de dialogue potentielles. Dans le cas du service Windows, je vais écrire des messages dans le journal des événements à la place.Est-il possible de détecter si le thread d'application principal s'exécute en tant que service Windows sans utiliser de directive de compilation?
J'ai trouvé plusieurs façons de le faire en utilisant des directives de compilation. Y a-t-il une méthode différente et plus élégante?
Merci
Va-t-il également afficher la valeur false lorsque l'option "Autoriser le service à interagir avec le bureau" est cochée? –
@Pierre 303: 'Environment.UserInteractive' retournera' true' si "Autoriser le service à interagir avec le bureau" est cochée. –
@Pierre 303. Comme l'a indiqué 0xA3, Environment.UserInteractive renvoie true si le service est défini sur "Autoriser le service à interagir avec le bureau". Si vous devez prendre en charge l'interaction avec le bureau tout en limitant l'affichage de vos journaux dans l'interface utilisateur, vous devriez probablement utiliser quelque chose dans le sens de la solution proposée par 0xA3. –