Code de sortie de l’application WPF

J’essaie de définir et d’obtenir le code de sortie de l’application.

J’essaie de faire quelque chose après:

protected override void OnStartup(StartupEventArgs e) { base.OnStartup(e); if ( e.Args.Length != 0) { } else { new MainWindow().ShowDialog(); } Environment.ExitCode = 110; this.Shutdown(); } 

Et puis j’essaie dans cmd de l’obtenir par echo %ERRORLEVEL%

Mais je reçois toujours le résultat 0 , aucune idée de quel est le problème?

Pour WPF, essayez

 Application.Current.Shutdown(110); 

Notez que l’application doit être exécutée en tant qu’application de console. Cette réponse est la façon la plus simple que je connaisse; la réponse acceptée semble plus difficile.

Un test simple pour savoir si vous utilisez la console: appelez votre application à partir de la ligne de commande (assurez-vous que votre code ne s’éteint pas immédiatement). La fenêtre principale devrait être affichée. Si vous pouvez taper une autre commande dans la console, votre application ne s’exécute pas dans son contexte. L’invite de commande doit être verrouillée et attendre la fermeture de la fenêtre.

Remplacez la méthode OnExit et dans ExitEventArgs, vous pouvez définir cette valeur.

  protected override void OnExit(ExitEventArgs e) { e.ApplicationExitCode = your_value; } 

Cela fonctionne pour moi avec l’une ou l’autre méthode ( Environment.ExitCode=110 ou Environment.Exit(110) ). J’espère que vous appelez le programme à partir de la console et non de Visual Studio pour vérifier ensuite le code de sortie …

Vous pouvez le faire dans Main méthode Main . Modifiez simplement son type de valeur de retour en int au lieu de void et renvoyez votre exit-code

 static int Main(ssortingng[] args) { // something to do Console.ReadKey(); return 110; } 

METTRE À JOUR:

Pour créer une application Main dans WPF personnalisée, procédez comme suit:

  • Premièrement: déchargez le projet en faisant un clic droit dessus dans l’Explorateur de solutions, puis cliquez sur Décharger le projet.

  • Modifiez le fichier .csproj par celui-ci:

  • Vous pouvez maintenant créer votre propre méthode Main dans votre projet:

Exemple de méthode Main et de classe d’ App :

 public partial class App : Application { [STAThread] public static int Main() { App app = new App(); app.InitializeComponent(); var i = app.Run(); return i; } public App() : base() { } protected override void OnExit(ExitEventArgs e) { e.ApplicationExitCode = 110; base.OnExit(e); } } 

Fais-le comme ça:

 Environment.Exit(110); 

Ceci mettra fin à l’application en cours avec le code de sortie 110 .

Vous pouvez le faire des manières suivantes …

  Application.Current.Shutdown(110); Environment.Exit(10); this.Close(); 

Shoutdown () renvoie un code. et Exit () renvoie également un code de sortie, mais Close () ne ferme que l’application.