2011-04-15 3 views
52

Je dois fermer la console lorsque l'utilisateur sélectionne une option de menu.Commande pour fermer une application de console?

J'ai essayé d'utiliser close() mais ça n'a pas marché ..

comment puis-je faire cela?

+1

curiosité:.. Quel objet avez-vous essayé d'appeler .Close() sur? –

Répondre

21

de près, vous voulez dire que vous voulez que l'instance actuelle de l'application de la console pour fermer, ou souhaitez-vous le processus de demande, de mettre fin? Vous avez manqué que tout le code de sortie importante:

Environment.Exit(0); 

Ou pour fermer l'instance actuelle de la forme:

this.Close(); 

utiles link.

6

Vous pouvez essayer cette

Application.Exit(); 
1
//How to start another application from the current application 
Process runProg = new Process(); 
runProg.StartInfo.FileName = pathToFile; //the path of the application 
runProg.StartInfo.Arguments = genArgs; //any arguments you want to pass 
runProg.StartInfo.CreateNoWindow = true; 
runProg.Start(); 

//How to end the same application from the current application 
int IDstring = System.Convert.ToInt32(runProg.Id.ToString()); 
Process tempProc = Process.GetProcessById(IDstring); 
tempProc.CloseMainWindow(); 
tempProc.WaitForExit(); 
0

Donc vous ne dites pas que vous vouliez l'application de quitter ou quitter brusquement, alors comme une autre option, peut-être juste avoir la fin de la boucle de réponse avec élégance. (Je suppose que vous avez une boucle en attendant les instructions d'utilisation Ceci est un code d'un projet que je viens d'écrire aujourd'hui

 Console.WriteLine("College File Processor"); 
     Console.WriteLine("*************************************"); 
     Console.WriteLine("(H)elp"); 
     Console.WriteLine("Process (W)orkouts"); 
     Console.WriteLine("Process (I)nterviews"); 
     Console.WriteLine("Process (P)ro Days"); 
     Console.WriteLine("(S)tart Processing"); 
     Console.WriteLine("E(x)it"); 
     Console.WriteLine("*************************************"); 

     string response = ""; 
     string videotype = ""; 
     bool starting = false; 
     bool exiting = false; 

     response = Console.ReadLine(); 

     while (response != "") 
     { 
      switch (response ) 
      { 
       case "H": 
       case "h": 
        DisplayHelp(); 
        break; 

       case "W": 
       case "w": 
        Console.WriteLine("Video Type set to Workout"); 
        videotype = "W"; 
        break; 

       case "I": 
       case "i": 
        Console.WriteLine("Video Type set to Interview"); 
        videotype = "I"; 
        break; 

       case "P": 
       case "p": 
        Console.WriteLine("Video Type set to Pro Day"); 
        videotype = "P"; 
        break; 

       case "S": 
       case "s": 
        if (videotype == "") 
        { 
         Console.WriteLine("Please Select Video Type Before Starting"); 
        } 
        else 
        { 
         Console.WriteLine("Starting..."); 
         starting = true; 
        } 
        break; 

       case "E": 
       case "e": 
        Console.WriteLine("Good Bye!"); 
        System.Threading.Thread.Sleep(100); 
        exiting = true; 
        break; 
      } 

      if (starting || exiting) 
      { 
       break; 
      } 
      else 
      { 
       response = Console.ReadLine(); 
      } 
     } 

     if (starting) 
     { 
      ProcessFiles(); 
     } 
Questions connexes