Criando serviços para Windows – Parte 01
Olá, caros leitores! Nesse artigo veremos como criar serviços do Windows que usam interface gráfica.
Estou utilizando Delphi↳Delphi3 conteúdosCom Delphi, Nelogica mira no mercado financeiro internacionalDev (Back & Front) · mar 2023Desenvolvedores Python agora podem acessar bibliotecas visuais do Delphi gratuitamenteDev (Back & Front) · ago 2022The Velopers #26 – Alexandre “Magoo” CostaGestão Dev & TI · mai 2019Ver tudo em Dev (Back & Front) → 2007, mas pode ser criado em outras versões também.
Resolvi criar esse tipo de artigo porque é muito difícil encontrar uma matéria completa na internet que nos ajude e atenda a nossa necessidade. Temos que procurar muito e ler vários textos até conseguir o que queremos. Geralmente quando estamos atrás de uma informação é porque precisamos dela o mais rápido possível, com o maior nível de detalhes que pudermos encontrar e de forma objetiva, não é?
Nosso trabalho foi dividido em três partes, são elas:
- Primeiros passos para criação do serviço – Parte 01
- Criação de Threads para trabalhar com o serviço criado – Parte 02
- Criação da tela de interação com o usuário – Parte 03
1. Primeiros passos para criação do serviço
1.1 Introdução
a. O que é um serviço?
Um serviço do Windows é uma aplicação que roda em segundo plano executando operações sem a intervenção do usuário e continua rodando enquanto o Windows estiver em execução.
Essas operações podem ser consultas a um FTP para verificar se há atualizações de um software, consultas a um banco de dados↳Banco de dados134 conteúdosSQL ou NoSQL: eis a questão!!Data · mar 2020Banco de dados: como organizar e dar segurança para milhões de dados de loteriasData · mai 20215 serviços gratuitos na cloud para bancos de dados PostgresData · fev 2025Ver tudo em Data →, monitoramento de arquivos ou as operações do usuário, pode ser uma aplicação servidora, leia o artigo Aplicação Multi-camadas para aprender como criar aplicação servidora, enfim, temos várias funcionalidades que podemos colocar em um serviço para ele fazer.
O serviço é carregado logo que o Windows é iniciado, mesmo que você esteja na tela de login do Windows o serviço já é executado e fica residente na memória executando as operações na qual foi programado para fazer.
b. Acessando o gerenciador de serviços do Windows
Para acessarmos o gerenciador de serviços do Windows e visualizar todos os serviços que estão instalados e que estão rodando em nosso computador, siga os seguintes passos:
Vá ao painel de controle –> Escolha ferramentas administrativas –> Escolha serviços
ou
Iniciar –> Executar –> Digite services.msc e clique em OK.
Irá exibir uma janela como a exibida a seguir:

Ao selecionar um serviço ele mostra do lado esquerdo o nome e algumas ações que podemos executar no serviço selecionado como Iniciar, Parar ou Reiniciar. Do lado direito temos a Descrição do serviço, Status e Tipo de inicialização.
OBS: Importante!!! Não é possível criar serviços para Windows 95, 98 ou ME. Para trabalhar com serviços é necessário que o Windows seja NT, 2000, 2003 ou XP.
1.2 Criando serviço no Delphi
Abra o Delphi e selecione File -> New -> Other.
Irá exibir a janela a seguir:

Escolha a categoria Delphi Projects e a opção Service Application dentro dessa categoria e clique em OK.
Ao clicar em OK irá abrir uma tela como a exibida abaixo:

Antes de continuarmos, vamos salvar nosso projeto.
Vá no menu File e clique em Save All.
Salve a unit com o nome untPrincipal e o projeto como ServicoWindows.
Clique na unit untPrincipal, pressione a tela F12 para visualizarmos o form.
OBS: Como é possível observar, esse formulário parece com um DataModule, permite colocarmos somente componentes não visuais nele.
a. Conhecendo as propriedades:
A seguir descrevo algumas propriedades importantes da classe TService:
- AllowPause -> Quando true indica que o serviço pode ser pausado. Deixe como está.
- AllowStop -> Quanto true indica que o serviço pode ser parado. Deixe como está.
- DisplayName -> Especifica o nome do serviço que irá aparecer no gerenciador de serviços do Windows, na coluna Nome. Digite o nome Criando Serviços para Windows com Delphi nessa propriedade.
- Interactive -> Quando true indica se haverá interação com o Windows ou com o usuário. Como essa é a finalidade de nosso artigo, coloque essa propriedade para true.
- Name -> Nome do nosso serviço, é a mesma coisa quando damos um nome a um formulário, um botão ou um data module. Digite o nome srvPrincipal nessa propriedade.
- StartType ->Define a forma com que o serviço será iniciado. Vamos deixar stAuto mesmo.
b. Conhecendo os eventos:
A seguir descrevo os eventos da classe TService:
- AfterInstall -> Ocorre após o nosso serviço ser registrado no gerenciador de serviços do windows.
- AfterUninstall -> Ocorre após ser removido do gerenciador de serviços do windows.
- BeforeInstall -> Ocorre antes de o serviço ser registrado no gerenciador de serviços do windows.
- BeforeUninstall -> Ocorre antes de ser removido do gerenciador de serviços do windows.
- OnContinue ->Ocorre após receber o comando de continuar a execução após ser pausado.
- OnExecute -> Junto com o serviço existe uma thread que é executada com ele. Esse evento ocorre quando essa thread é iniciada.
- OnPause -> Ocorre após o serviço ser pausado temporariamente.
- OnStart -> Ocorre após o serviço ser iniciado, esse evento ocorre primeiro que o evento OnExecute.
- OnStop -> Ocorre quando o serviço é parado pelo gerenciador de serviços do Windows.
c. Programando o serviço:
Agora que nós conhecemos as propriedades e eventos mais importantes da classe TService, vamos começar a programação.
Declare a unit Registry na sessão uses da nossa unit, como mostrado abaixo:

Dê um duplo clique no evento AfterInstall e digite o seguinte código:

No começo do nosso artigo foi mostrado como fazer para exibir o gerenciador de serviços do Windows. Vimos que ao lado da coluna Nome, é exibida a descrição do serviço. A rotina acima é responsável por colocar essa descrição no nosso serviço.
A única tarefa que o nosso serviço faz até agora é colocar a descrição, mas já podemos testar nossa aplicação.
Compile nossa aplicação com CTRL F9, clique em Iniciar e em seguida escolha Executar. Digite o caminho completo de onde sua aplicação foi salva e o nome do executável. Coloque ao final do nome do executável /install.
Ex.: E:\\Sistemas\\Servicos\\Parte01\\ServicoWindows.exe /install
Você irá receber uma mensagem que o serviço foi instalado com sucesso.
Abra o gerenciador de serviços do Windows e procure o serviço criado. Procure pelo nome que colocou em DisplayName.
Para desinstalar o serviço digite o mesmo caminho e ao invés de digitar /install digite /uninstall.
Ex.: E:\\Sistemas\\Servicos\\Parte01\\ServicoWindows.exe /uninstall
Pronto, os passos mais importantes para criarmos um serviço para Windows foram vistos nesse artigo. Acabamos de conhecer os conceitos, o que é um serviço, onde fica instalado, para que serve e como criar uma aplicação simples. Essas características são importantes para que nosso trabalho seja bem feito.
Parabéns por ter chegado até aqui. Até o próximo artigo.






José Carlos Macoratti
Cesar Gimenes




