Você está na página 1de 4

Desenvolvendo um projeto Windows Services

Os Projetos Windows Services nos permite criar aplicaes que rodam em background no Windows e so automaticamente inicializados (ou manualmente) quando o sistema operacional iniciado. Esses projetos se caracterizam por no apresentar interface com o usurio e so projetados para ser usado em servidores ou quando necessitamos de funes que devem ser executados de forma independente e constante. Nesse artigo vamos conhecer um pouco das aplicaes Windows Services. Para isso desenvolveremos um Windows Services que criar um log de registro em um arquivo (txt), que ser executado de tempo em tempo a partir de um Timer. Para comear vamos criar um novo projeto no Visual Studio: File -> New Project e escolha a template : WINDOWS SERVICE.

Figura 1 Criando um novo Projeto. As aplicaes do tipo Windows Service no possuem os mesmos eventos que existem em aplicaes Windows como exemplo: clicar com o mouse, digitar em uma textbox, etc. Dessa forma, os eventos mais importantes de aplicaes Windows Service so: Iniciar um servio (OnStart) ou parar (OnStop). Para iniciar a codificao do nosso sistema, clique com o direito do mouse sobre a classe Service1.vb e em seguida em View Code. Observe que a classe Service1 j apresenta os mtodos OnStart e OnStop nos quais iremos desenvolver nosso cdigo. Importe a namespace System.IO para incluir as classes de manipulao de arquivos. Em seguida, iremos escrever a funo GravarLog, que ser a responsvel por gravar um log de registro no arquivo. Veja na imagem abaixo:

Figura 2 Mtodo GravarLog. O prximo passo importar a namespace System.Timers que ser a responsvel por definir um objeto que executar o cdigo da funo GravarLog. Obs: No podemos utilizar o controle Timer do Visual Basic, deve ser criado um objeto Timer presente na namespace System.Timers. Aps importar a namespace, vamos instanciar um Objeto do tipo Timer e definir o Evento Elapsed. Veja na imagem abaixo:

Figura 3 Objeto Timer Para finalizar, iremos programar o cdigo dos eventos OnStart e OnStop. Veja na imagem abaixo:

Figura 4 Eventos OnStart e OnStop

Novamente clique com o boto direito em Service1.vb e depois em View Designer. Clique com o boto direito e depois em Add Installer, conforme vemos na imagem abaixo:

Figura 5 Add Installer Observe que ser criado dois objetos: ServiceProcessInstaller1 e ServiceInstaller1. Clique em ServiceProcessInstaller1 e na janela de Propriedades altere a propriedade Account de para LocalSystem. Para alterar o nome deste servio na visualizao da janela de Servios do Windows selecione o cone ServiceInstaller1 e na propriedade DisplayName coloque o nome desejado.

Figura 6 Project Installer Para instalar o servio voc pode criar um projeto do tipo Setup ou v ao menu: Iniciar -> Programas -> Microsoft Visual Studio .NET 2005 -> Visual Studio .NET Tools-> Visual Studio .NET 2005 Command Prompt. Depois v at a pasta onde o arquivo foi compilado e digite o comando abaixo pressionado a tecla Enter logo em seguida: Installutil Service1.exe Se tudo der certo o console exibir uma mensagem de sucesso. Por ultimo v at a janela de servios do Windows e inicie o servio. Chegamos ao final desse artigo. At o prximo! MELHOR INSTALAR POR ESSE MTODO:

Compilando a soluo tenho em mos o executvel WinService.exe. Mas para este aplicativo ser executado como um Windows service eu preciso instal-lo e no execut-lo. Para fazer isto utilizo um utilitrio do .Net Framework SDK, chamado installutil. Como mostra a figura abaixo, basta chamar o installutil, mandando o caminho para o executvel. Para desinstal-lo, basta adiocionar o parmetro /u.

Prompt> installutil caminho\servico.exe