Comment un Windows en C# Console de demande de dire si elle est exécutée de manière interactive
Comment une console Windows application écrite en C# de déterminer si elle est invoquée dans un non-interactive de l'environnement (par exemple, à partir d'un service ou d'une tâche planifiée) ou à partir d'un environnement capable d'interaction utilisateur (par exemple, l'Invite de Commande ou PowerShell)?
Vous devez vous connecter pour publier un commentaire.
De l'environnement.UserInteractive Propriété
Pour déterminer si un .NET application est en cours d'exécution en mode graphique:
Je ne l'ai pas testé, mais De l'environnement.UserInteractive semble prometteur.
Si tout ce que vous essayez de faire est de déterminer si la console continuera d'exister après votre programme de sorties (de sorte que vous pouvez, par exemple, demander à l'utilisateur de frapper
Enter
avant que le programme des sorties), puis tout ce que vous avez à faire est de vérifier si votre processus est le seul attaché à la console. Si c'est le cas, la console sera détruit lors de votre processus s'arrête. Si il y a d'autres processus attachés à la console, puis la console continuera à exister (parce que votre programme ne sera pas la dernière).Par exemple*:
(*) Adapté de code trouvé ici.
Une amélioration possible de Glenn Slayden la solution: