Ir para conteúdo
Fórum Script Brasil
  • 0

Como posso criar um Windows Service que executa um arquivo .exe de 2 e


Raposo

Pergunta

Prezados(as),

Possuo um arquivo .exe que necessito colocar dentro de um serviço do windows e o mesmo necessita ficar chamando esse executavel de 2 em 2 minutos.

Como posso desenvolver esse código?

Desde já agradeço!

Segue o código do programa que está com erro: ------------------------------------

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Timers;
using System.ServiceProcess;

namespace progTrans
{
    static class Program
    {
       partial class Processor:ServiceBase 
             {
                ProcessorManager processorManager;

                    public Processor()
                       
                    {
                        InitializeComponent();
                        processorManager = new ProcessorManager();
                    }

                    
                    protected override void OnStart(string[] args)
                   
                    {
                       processorManager.Start();
                    }

                    
                    protected override void OnStop()
                    {
                       processorManager.Stop();
                    }
            }



       public class ProcessorManager
         {
                private Timer timer = new Timer();

                public ProcessorManager()
                {
                    AdjustTimer();
                }


                public void Start()
                {
                timer.Start(); //Inicia a contagem do Timer
                //("Processor Manager started.");
                }

                public void Stop()
                {
                timer.Stop();
                //("Processor Manager stopped.");
                }

                private void AdjustTimer()/*Execução onde você configura o Timer*/
                    {
                    #if(!DEBUG)
                        timer.Interval = 300000;
                        timer.AutoReset = true;
                    #else
                        timer.Interval = 30000; //30 segundos
                        timer.AutoReset = true;
                    #endif

                    timer.Elapsed += OnTimeOut;//Evento que será executado quando o tempo que você estipulou estourar (A sua execução em si)    
                    }

                    private void OnTimeOut(object source, ElapsedEventArgs e)
                   {
                         try
                            {
                            System.Diagnostics.Process.Start(@"c:\Folder\arquivo.exe");                                           
                            }

                         }
                catch (Exception ex)
               {
                        LogError("Error managing processors!\n" + ex.Message);
              }
        
            static void Main()
        {
            ServiceBase[] ServicesToRun;
            ServicesToRun = new ServiceBase[] 
   { 
    new Service1() 
   };
            ServiceBase.Run(ServicesToRun);
        }
    }
}

-------------------------------------------------------------------------------------------

Editado por quintelab
Adicionado BBCode Code
Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,4k
×
×
  • Criar Novo...