public ServicePrintMonitor() { Log.Info("-- Se levanta el Servicio para Monitorizar el Servicio de Impresión --"); InitializeComponent(); Log.Info("-- Nos suscribimos a los eventos de impresión --"); EventMonitorPrinting.PrintingEven(); // Descomentar para suscribirnos a los eventos de creación de ficheros de spool Log.Info("Nos suscribimos a los eventos de creación de ficheros de Spool"); WatchIO.FileEvent(LocalPrinting.PathPrintSpool()); // Definimos un Timer para lanzar una tarea de forma periodica. Tiempo = new Timer(); Tiempo.Interval = 3600000; // 1 hora //Tiempo.Interval = 10000; // 10 sg //Tiempo.Elapsed += new ElapsedEventHandler(Metodo_delegado a ejecutar); //Tiempo.Elapsed += new ElapsedEventHandler(Programa.PruebaServicio); //Tiempo.Elapsed += new ElapsedEventHandler(Programa.Inicio); // Tarea periodica: Comprobar que estamos suscritos a los eventos de impresión Log.Info("Lanzamos EventMonitorPrinting.IsAliveEvents() de forma periódica"); Tiempo.Elapsed += new ElapsedEventHandler(EventMonitorPrinting.IsAliveEvents); // Descomentar para la suscripción a los eventos de creación de ficheros de spool Tiempo.Elapsed += new ElapsedEventHandler(WatchIO.IsAliveEvents); //Fecha = DateTime.Now.ToShortDateString().Replace("/", "-"); }
/// <summary> /// Punto de entrada principal para la aplicación. /// </summary> static void Main() //static void descomentar_linea_anterior_para_generar_instalador() { /// Leemos la configuración de App.config para log4net y generar archivos de log //Path de los ejecutables del Servicio Monitor de Impresión string PathAppConfig = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location); // Nombre fichero ejecutable del Servicio Monitor de Impresión string NameAppConfig = System.IO.Path.GetFileName(System.Reflection.Assembly.GetExecutingAssembly().Location); Log.Info("PATH de App.config: " + PathAppConfig + @"\" + NameAppConfig + ".config"); // Aviso reinicio servicio //Log.Warn("Se reinicia el servicio Monitor Impresion"); /// Inicializamos log4net para que recargue configuración en tiempo de ejecución System.IO.FileInfo FileAppConfig = new System.IO.FileInfo(PathAppConfig + @"\" + NameAppConfig + ".config"); log4net.Config.XmlConfigurator.ConfigureAndWatch(FileAppConfig); Log.Info(""); Log.Info(""); Log.Info(""); Log.Info(""); Log.Info(""); Log.Info(""); Log.Info(""); Log.Info("==========================================================================================="); Log.Info("----------- ------------"); Log.Info("----------- INICIAMOS EL MONITOR DE IMPRESION ------------"); Log.Info("----------- ------------"); Log.Info("==========================================================================================="); Log.Info("Directorio de Spool: " + LocalPrinting.PathPrintSpool()); // Revisamos la congiguracion de las impresoras. Se actualizan sus propiedades en caso necesario para que se guarden los documentos impresos LocalPrinting.ConfigurePrinters(); ServiceBase[] ServicesToRun; ServicesToRun = new ServiceBase[] { new ServicePrintMonitor() }; ServiceBase.Run(ServicesToRun); }
/** \brief Test creación archivo * \details Creamos un archivo para testear si estamos suscritos a los eventos de Sistema de Archivos */ public static void IsAliveEvents(object sender, EventArgs Args) { Log.Debug("IsAliveEvents(INICIO) -> Valor de IsEvenCapture: " + IsEvenCapture.ToString()); // Vamos a chequear si estamos suscritos a los eventos del Sistema de Archivos Log.Debug("IsAliveEvents -> Ponemos la variable de control IsEvenCampture = false"); IsEvenCapture = false; // Creamos un fichero para que se produzca un evento de creación de archivo del Sistema de Archivos Log.Debug("Creamos el fichero de testeo: " + LocalPrinting.PathPrintSpool() + @"\" + "test.SPL"); File.Create(LocalPrinting.PathPrintSpool() + @"\" + "test.SPL").Dispose(); //Esperamos 3000 milisegundos Log.Debug("IsAliveEvents -> Esperamos 3 sg"); System.Threading.Thread.Sleep(3000); // Borramos los ficheros de test try { File.Delete(LocalPrinting.PathPrintSpool() + @"\" + "test.SPL"); } catch (Exception e) { Log.Error("No se ha podido borrar el fichero de test: " + LocalPrinting.PathPrintSpool() + @"\" + "test.SPL"); } try { File.Delete(LocalPrinting.PathPrintSpool() + @"\" + _DIR_SPOOL_BACKUP + @"\" + "test.SPL"); } catch (Exception e) { Log.Error("No se ha podido borrar el fichero de test: " + LocalPrinting.PathPrintSpool() + @"\" + _DIR_SPOOL_BACKUP + @"\" + "test.SPL"); } /* * Chequeamos la variable de control para ver si efectivamente estamos suscritos. * Si estamos subscritos está variable se tenía que haber actualizado a través del metodo suscrito * OnCreated(). * * En caso de que no estemos suscritos lanzamos el método FileEvent() para subscribir el método * OnCreated(). */ if (IsEvenCapture) { Log.Info("Suscripción método WatchIO.OnCreated() a eventos del Sistema Archivos: OK"); } else { Log.Error("No suscrito a los eventos del Sistema Archivos. Nos suscribimos."); try { FileEvent(LocalPrinting.PathPrintSpool()); IsEvenCapture = true; } catch (Exception e) { Log.Error(e); } } } //Fin IsAliveEvents()