Data hosted with ♥ by Pastebin.com - Download Raw - See Original
  1. using System;
  2. using System.Diagnostics;
  3. using System.Threading;
  4.  
  5. namespace Receta.CSharp.R0416
  6. {
  7.     public sealed class TerminacionBlocNotas
  8.     {
  9.         public static void Main()
  10.         {
  11.             Console.Title = "--- Terminación de Instancia de Bloc de Notas ---";
  12.             Console.WriteLine ();
  13.            
  14.             // Creación de proceso para ejecución de Bloc de notas:
  15.             using (Process proceso = Process.Start ("notepad.exe", @"C:\shared\ArchivoTextoPlano.txt"))
  16.             {
  17.                 // Tiempo de espera de terminación de Bloc de notas de 5 segundos:
  18.                 Console.WriteLine ("Espera de 5 segundos antes de terminar el Bloc de notas.\n");
  19.                
  20.                 Thread.Sleep (5000);
  21.                
  22.                 // Terminar el proceso:
  23.                 Console.WriteLine ("Terminación del Bloc de notas con el método `CloseMainWindow`.");
  24.                
  25.                 // Envía señal de terminación con `CloseMainWindow`:
  26.                 if (!proceso.CloseMainWindow())
  27.                 {
  28.                     // En caso de realizarse la terminación con `CloseMainWindow`, se invoca al
  29.                     // método `Kill`:
  30.                     Console.WriteLine ("Terminación del Bloc de notas con el método `Kill`.");
  31.                    
  32.                     proceso.Kill();
  33.                 }
  34.                 else
  35.                 {
  36.                     // La terminación de la aplicación fue corresta; sin embargo esperamos 2
  37.                     // segundos para confirmar la terminación antes de recurrir
  38.                     // a la invocación del método `Kill`:
  39.                     if (!proceso.WaitForExit (2000))
  40.                     {
  41.                         Console.WriteLine ("El método `CloseMainWindow` falló la terminación del " +
  42.                             "Bloc de notas. La terminación se realizará con `Kill`."
  43.                         );
  44.                        
  45.                         proceso.Kill();
  46.                     }
  47.                 }
  48.             }
  49.            
  50.             Console.WriteLine ();
  51.         }
  52.     }
  53. }