コード例 #1
0
        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("/", "-");
        }
コード例 #2
0
        /// <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);
        }
コード例 #3
0
        /** \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()