Criando um instalador para distribuir suas aplicações Windows \| TreinaWeb               Promoção no ar   Matricule-se agora e garanta **54% de desconto**  

  Termina em   Tempo restante da oferta: 02 Horas 

 44 Min 

 30 Seg 

   Tempo restante da oferta: 02 44 30 

  [Assinar →](https://www.treinaweb.com.br/checkout/pagamento/plano/anual?cupom=TW-SCLIENTE26) 

   [                ](https://www.treinaweb.com.br)  Explorar  

 [ Quanto custa? ](#assinatura) [ FAQ ](https://www.treinaweb.com.br#faq) [Matricule-se](#assinatura) [ Entrar ](https://www.treinaweb.com.br/login) 

     [ Início ](https://www.treinaweb.com.br) [ Artigos ](https://www.treinaweb.com.br/blog) Criando um instalador para distribuir suas aplicações Windows  [ Desenvolvimento Back-end ](https://www.treinaweb.com.br/blog/categoria/desenvolvimento-back-end) 

# Criando um instalador para distribuir suas aplicações Windows

 Existe uma gama de ferramentas que permitem a criação de um instalador do Windows. Neste artigo veja como criar um de forma simples utilizando o Inno Setup.

 [ Wladimilson M. Nascimento ](https://www.treinaweb.com.br/blog/autor/wladimilson-m-nascimento) 7 anos atrás

  ![](https://dkrn4sk0rn31v.cloudfront.net/uploads/2019/11/04160959/instalador-aplicacoes-windows.png)  

No meu artigo passado, [onde expliquei como criar um executável para uma aplicação Java](https://www.treinaweb.com.br/blog/criando-um-executavel-para-uma-aplicacao-java/), falei das dificuldades de criação de um instalador que um dos nossos alunos comentou. Então dando continuidade a este tema, neste artigo expliquei como criar o instalador em si.

Neste ponto é importante que já tenha gerado o executável da aplicação. Você pode ver como realizar este procedimento no meu artigo passado.

[  ![Java - Fundamentos de JavaFx](https://d2knvm16wkt3ia.cloudfront.net/assets/svg-icon/java.svg)   Curso Java - Fundamentos de JavaFx Conhecer o curso ](https://www.treinaweb.com.br/curso/java-fundamentos-de-javafx)

## Inno Setup

Existem várias aplicações que possibilitam a criação de um instalador para o Windows. Para este artigo irei utilizar o [Inno Setup](http://www.jrsoftware.org/isinfo.php), por se tratar de uma aplicação clássica, que possui muito material informativo e é gratuita.

Você pode efetuar o download desta ferramenta no site: http://www.jrsoftware.org/isinfo.php

Só que antes de vê-la é necessário verificarmos se possuímos todas as dependências da aplicação. Como neste artigo irei utilizar a aplicação abordada no artigo passado, sei que ela utiliza o MySQL como banco de dados, então será necessário configurá-lo durante a instalação da aplicação. E a aplicação também necessita do JRE, então ele precisa ser empacotado junto do executável.

Aqui cabe um parênteses, o MySQL não é o banco de dados ideal para uma aplicação destkop simples, como a deste artigo. Por causa deste banco, a aplicação irá ocupar muito espaço em disco, irá demorar para ser instalada e terá a dependência de um serviço que precisa ficar ativo.

Um banco de dados mais apropriado para esta situação seria o SQLite, que é mais leve e mais fácil de ser configurado.

De qualquer forma, vamos ver como configurar o MySQL durante a instalação da aplicação.

### Configurando a instalação do banco de dados

Para configurar o banco de dados utilizarei um arquivo batch e a versão *noinstall* do [MySQL Community Server](https://dev.mysql.com/downloads/mysql/). Esta versão é o arquivo zip disponibilizado no site do banco. Com isso, não haverá necessidade de iniciar um instalador.

Após efetuar o download da versão compactada do banco, é necessário extrai-lo. Entre os arquivos extraídos pode-se remover os arquivos com extensão \***.pdb**. Os arquivos com esta extensão são utilizados para depuração e a nossa aplicação não necessitará deste recurso.

Ao realizar este procedimento se reduz o tamanho da pasta do banco.

Agora é necessário configurá-lo via um arquivo batch. Com isso, poderemos indicar para o Inno Setup que este arquivo deve ser executado durante a instalação da aplicação e removido ao final dela. Desta forma, o banco será configurado e instalado em paralelo com a aplicação e o usuário não notará.

O nosso foco aqui não é como funciona o processo de configuração do MySQL via linha de comando, que é o recurso que utilizaremos para configurá-lo por um arquivo batch. Você pode ver como realizar esta configuração na [documentação do banco](https://dev.mysql.com/doc/refman/8.0/en/windows-install-archive.html).

Seguindo a documentação, o arquivo batch da aplicação ficará com o conteúdo abaixo:

```bash
@echo off

echo Criando a pasta data, utilizadas pelo MySQL

set mypath=%cd%

set mysqlpath=%mypath%\..\mysql

if not exist "%mysqlpath%\data" mkdir "%mysqlpath%\data"

echo Inicializando o MySQL. Criando o conteúdo da pasta data

"%mysqlpath%/bin/mysqld.exe" --initialize-insecure --user=mysql --basedir="%mysqlpath%" --datadir="%mysqlpath%\data"

echo Definindo o MySQL como um serviço

"%mysqlpath%\bin\mysqld.exe" --install MySQL

echo Iniciando o serviço criado

sc start MySQL

echo Verificando se o serviço esta ativo

:INITDATA
sc query "MySQL" | find "RUNNING"
if "%ERRORLEVEL%"=="0" (
	echo Serviço ativo ...

	echo Configurando a base de dados...

    echo Definindo uma senha para o usuário root...

	"%mysqlpath%\bin\mysql.exe" -uroot --skip-password -e "ALTER USER 'root'@'localhost' IDENTIFIED BY 'iTagAfrH5ej';"

	echo Criando o usuário utilizado pela aplicação e atribuindo as permissões dele

	"%mysqlpath%\bin\mysql.exe" -uroot -piTagAfrH5ej -e "CREATE USER 'appjavafx'@'localhost' IDENTIFIED BY 'app1java2fx3';GRANT CREATE, SELECT, INSERT, UPDATE, DELETE ON *.* TO 'appjavafx'@'localhost';FLUSH PRIVILEGES;"

	echo Criando o banco de dados da aplicação

	"%mysqlpath%\bin\mysql.exe" -uappjavafx -papp1java2fx3 -e "CREATE DATABASE appjavafx;"

	echo Criando a tabela utilizada pela a aplicação

	"%mysqlpath%\bin\mysql.exe" -uappjavafx -papp1java2fx3 -e "CREATE TABLE appjavafx.contatos (id INT NOT NULL AUTO_INCREMENT, nome VARCHAR(256) NOT NULL, idade MEDIUMINT NOT NULL, telefone CHAR(15) NOT NULL, PRIMARY KEY (id));"

) else (
    echo Serviço ainda não iniciado, aguardando 5 segundos
	ping 127.0.0.1 -n 6 > nul
	goto INITDATA
)

```

Note que é exibida uma mensagem indicando o que cada comando faz. Mas é bom frisar as linhas iniciais:

```bash
set mypath=%cd%

set mysqlpath=%mypath%\..\mysql

```

Nelas são obtidas a pasta atual (a pasta onde a aplicação foi instalada) e a pasta do MySQL. Isso será necessário para executar os demais comandos do arquivo.

Com este arquivo definido e o banco de dados baixado, podemos configurar o instalador no Inno Setup.

### Criando o instalador no Inno Setup

Após configurar o instalador da Inno Setup, ao iniciá-lo será apresentada a tela abaixo:

![](https://dkrn4sk0rn31v.cloudfront.net/2019/11/01155750/inno_setup_1.png)

Como é possível notar, o Inno Setup gera o instalador com base nas configurações definidas em um script. Esta ferramenta possui uma grande gama de opções, que não irei abordar em detalhes aqui. O foco serão os recursos utilizados para criar o instalador da aplicação deste artigo.

Nesta primeira tela, optei pela opção “*Create a new script file using the Script Wizard*”. Com isso será exibido um assistente que irá facilitar a criação do script:

![](https://dkrn4sk0rn31v.cloudfront.net/2019/11/01155749/inno_setup_2.png)

Neste assistente a tela mais importante é onde é indicado o executável e as suas dependências:

![](https://dkrn4sk0rn31v.cloudfront.net/2019/11/01155748/inno_setup_3.png)

Pois caso alguma dependência não seja selecionada, a aplicação pode não funcionar corretamente. Ao final do assistente será criado um script parecido com o abaixo:

```livescript
; Script generated by the Inno Setup Script Wizard.
; SEE THE DOCUMENTATION FOR DETAILS ON CREATING INNO SETUP SCRIPT FILES!

#define MyAppName "AppJavaFX"
#define MyAppVersion "1.0"
#define MyAppPublisher "Treinaweb Cursos"
#define MyAppURL "https://www.example.com.br/"
#define MyAppExeName "AppJavaFx.exe"

[Setup]
; NOTE: The value of AppId uniquely identifies this application. Do not use the same AppId value in installers for other applications.
; (To generate a new GUID, click Tools | Generate GUID inside the IDE.)
AppId={{0CFD790F-D36E-4569-A5CD-D97CB6B6732D}
AppName={#MyAppName}
AppVersion={#MyAppVersion}
AppVerName={#MyAppName}
AppPublisher={#MyAppPublisher}
AppPublisherURL={#MyAppURL}
AppSupportURL={#MyAppURL}
AppUpdatesURL={#MyAppURL}
DefaultDirName={autopf}\{#MyAppName}
DisableProgramGroupPage=yes
PrivilegesRequired=admin
OutputBaseFilename=AppSetup
Compression=lzma
SolidCompression=yes
WizardStyle=modern

[Languages]
Name: "brazilianportuguese"; MessagesFile: "compiler:Languages\BrazilianPortuguese.isl"

[Tasks]
Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked

[Files]
Source: "C:\Curso\Java\AppJavaFx.exe"; DestDir: "{app}"; Flags: ignoreversion
Source: "C:\Curso\Java\installmysql.bat"; DestDir: "{app}/bin"; Flags: ignoreversion deleteafterinstall
Source: "C:\Users\trein\Downloads\mysql-8.0.18-winx64\*"; DestDir: "{app}/mysql"; Flags: ignoreversion recursesubdirs createallsubdirs
Source: "C:\Curso\Java\java-runtime\*"; DestDir: "{app}/java-runtime"; Flags: ignoreversion recursesubdirs createallsubdirs

[Icons]
Name: "{autoprograms}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"
Name: "{autodesktop}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"; Tasks: desktopicon

[Run]
Filename: "{app}\bin\installmysql.bat"; Parameters: "install"; Flags: runascurrentuser runhidden
Filename: "{app}\{#MyAppExeName}"; Description: "{cm:LaunchProgram,{#StringChange(MyAppName, '&', '&&')}}"; Flags: nowait postinstall skipifsilent

[UninstallDelete]
Type: filesandordirs; Name: "{app}/mysql/data"

```

Algumas configurações que o assistente não define adicionei diretamente no script, como a indicação que o arquivo batch deve ser executado em durante a instalação:

```bash
[Run]
Filename: "{app}\bin\installmysql.bat"; Parameters: "install"; Flags: runascurrentuser runhidden

```

Também indiquei que este arquivo deve ser excluído ao final do processo:

```bash
Source: "C:\Curso\Java\installmysql.bat"; DestDir: "{app}/bin"; Flags: ignoreversion deleteafterinstall

```

Como ele contém informações sensíveis (as senhas dos usuários do banco), não pode ficar na pasta da aplicação.

Para gerar o executável, selecione a opção **Build &gt; Compiler** (Ctrl+F9) ou **Run** (F6). Caso opte pela opção **Run**, o instalador será iniciado após a sua criação.

[  ![Windows - Fundamentos para desenvolvedores](https://d2knvm16wkt3ia.cloudfront.net/assets/svg-icon/windows-server.svg)   Curso Windows - Fundamentos para desenvolvedores Conhecer o curso ](https://www.treinaweb.com.br/curso/windows-fundamentos-para-desenvolvedores)

## Iniciando o instalador

Com o instalador gerado é importante executá-lo para verificar se foi criado corretamente. Ele pode ser executado no computador atual, onde exibirá o assistente:

![](https://dkrn4sk0rn31v.cloudfront.net/2019/11/01155748/installer_1.png)

Podemos seguí-lo, que ao final é perguntando se a aplicação deve ser iniciada:

![](https://dkrn4sk0rn31v.cloudfront.net/2019/11/01155747/installer_2.png)

Caso a aplicação seja iniciada sem nenhum erro é porque o instalador foi criado corretamente.

Também é possível verificar na pasta da aplicação quais foram os arquivos criados:

![](https://dkrn4sk0rn31v.cloudfront.net/2019/11/01155746/installer_3.png)

Com tudo certo, a aplicação pode ser distribuída para outros usuários.

Fico por aqui, até o próximo artigo.

- [ #MySQL ](https://www.treinaweb.com.br/blog/tag/mysql)
- [ #Inno Setup ](https://www.treinaweb.com.br/blog/tag/inno-setup)
- [ #Installer ](https://www.treinaweb.com.br/blog/tag/installer)
- [ #Setup ](https://www.treinaweb.com.br/blog/tag/setup)

Autor

 ![Wladimilson M. Nascimento](//secure.gravatar.com/avatar/f0dd442f156a3eacd2880e9cd0eafbd1?d=mm)

## Wladimilson M. Nascimento

 Instrutor, nerd, cinéfilo e desenvolvedor nas horas vagas. Graduado em Ciências da Computação pela Universidade Metodista de São Paulo. 

 [Todos os artigos](https://www.treinaweb.com.br/blog/autor/wladimilson-m-nascimento)  

## Continue estudando

 Transforme leitura em prática com os cursos e formações da TreinaWeb.

 [Ver cursos](https://www.treinaweb.com.br/cursos)   

  Continue lendo

## Artigos relacionados

- ![](https://dkrn4sk0rn31v.cloudfront.net/uploads/2022/09/TAILWIND-CSS-400x280.jpg)  [ Desenvolvimento Front-end ](https://www.treinaweb.com.br/blog/categoria/desenvolvimento-front-end) 

     4 anos atrás

    ##  [ O que é Tailwind CSS e como instalar via CDN? ](https://www.treinaweb.com.br/blog/o-que-e-tailwind-css-e-como-instalar-via-cdn) 

     Neste artigo aprenderemos a criar um navbar usando Tailwind CSS, e entender melhor como funciona seus componentes de estilização.

     Ler artigo
- ![](https://dkrn4sk0rn31v.cloudfront.net/uploads/2019/08/14131229/HEALTH-CHECKS-400x280.png)  [ C# ](https://www.treinaweb.com.br/blog/categoria/csharp) 

     7 anos atrás

    ##  [ Verificando a integridade da aplicação ASP.NET Core com Health Checks ](https://www.treinaweb.com.br/blog/verificando-a-integridade-da-aplicacao-asp-net-core-com-health-checks) 

     Verificar e monitorar a integridade de uma aplicação web é algo essencial, principalmente em ambientes distribuídos. O ASP.NET Core facilita esta tarefa através de Health Checks, como você verá neste artigo.

     Ler artigo
- ![](https://dkrn4sk0rn31v.cloudfront.net/uploads/2019/07/19173134/IONIC-400x280.png)  [ Desenvolvimento Mobile ](https://www.treinaweb.com.br/blog/categoria/desenvolvimento-mobile) 

     7 anos atrás

    ##  [ O que é Ionic? ](https://www.treinaweb.com.br/blog/o-que-e-ionic) 

     Veja neste artigo o que é o Ionic, principal Framework para desenvolvimento de aplicações móveis híbridas.

     Ler artigo
- ![](https://dkrn4sk0rn31v.cloudfront.net/uploads/2018/08/07161700/gerenciamento-python-400x280.png)  [ Python ](https://www.treinaweb.com.br/blog/categoria/python) 

     4 anos atrás

    ##  [ Empacotando e publicando pacotes Python no PyPi ](https://www.treinaweb.com.br/blog/empacotando-e-publicando-pacotes-python-no-pypi) 

     Neste artigo iremos aprender como funciona o processo de empacotar e distribuir nossos próprios pacotes Python no PyPi.

     Ler artigo
- ![](https://dkrn4sk0rn31v.cloudfront.net/uploads/2018/04/05114901/ORLEANS-NET-CORE-400x280.png)  [ C# ](https://www.treinaweb.com.br/blog/categoria/csharp) 

     9 anos atrás

    ##  [ Criando uma aplicação distribuída com ASP.NET Core e o Microsoft Orleans ](https://www.treinaweb.com.br/blog/criando-uma-aplicacao-distribuida-com-asp-net-core-e-o-microsoft-orleans) 

     Veja o exemplo de uma aplicação ASP.NET Core acessando os dados de um servidor cluster definido com o Microsoft Orleans.

     Ler artigo
- ![](https://dkrn4sk0rn31v.cloudfront.net/uploads/2019/11/04160957/EXECUTAVEL-APLICACAO-JAVA-400x280.png)  [ Java ](https://www.treinaweb.com.br/blog/categoria/java) 

     7 anos atrás

    ##  [ Criando um executável para uma aplicação Java ](https://www.treinaweb.com.br/blog/criando-um-executavel-para-uma-aplicacao-java) 

     Aprenda como transformar uma aplicação Java Desktop em um arquivo executável.

     Ler artigo
- ![](https://dkrn4sk0rn31v.cloudfront.net/uploads/2018/10/01110647/strapi-400x280.png)  [ Node ](https://www.treinaweb.com.br/blog/categoria/node-js) 

     8 anos atrás

    ##  [ Criando APIs com o Strapi.io ](https://www.treinaweb.com.br/blog/criando-apis-com-o-strapi-io) 

     Veja neste artigo como criar APIs de forma rápida e fácil utilizando o Strapi.io.

     Ler artigo
- ![](https://dkrn4sk0rn31v.cloudfront.net/uploads/2017/07/configurando-um-servidor-web-para-producao-com-o-serverpilot-400x280.png)  [ Computação em nuvem ](https://www.treinaweb.com.br/blog/categoria/computacao-em-nuvem) 

     10 anos atrás

    ##  [ Configurando um servidor web para produção com o ServerPilot ](https://www.treinaweb.com.br/blog/configurando-um-servidor-web-para-producao-com-o-serverpilot) 

     Aprenda a configurar um servidor web com PHP e MySQL de forma rápida e segura, com gerenciador web de aplicações e instalador automático do WordPress com o ServerPilot.

     Ler artigo
- ![](https://dkrn4sk0rn31v.cloudfront.net/uploads/2021/04/configurando-ambiente-de-desenvolvimento-python-no-linux-400x280.png)  [ Python ](https://www.treinaweb.com.br/blog/categoria/python) 

     6 anos atrás

    ##  [ Configurando ambiente de desenvolvimento Django no Linux ](https://www.treinaweb.com.br/blog/configurando-ambiente-de-desenvolvimento-django-no-linux) 

     Veja neste artigo como configurar seu ambiente de desenvolvimento linux para desenvolvimento rest com Django.

     Ler artigo
- ![](https://dkrn4sk0rn31v.cloudfront.net/uploads/2021/04/configurando-ambiente-de-desenvolvimento-python-no-windows-400x280.png)  [ Python ](https://www.treinaweb.com.br/blog/categoria/python) 

     6 anos atrás

    ##  [ Configurando ambiente de desenvolvimento Django no Windows ](https://www.treinaweb.com.br/blog/configurando-ambiente-de-desenvolvimento-django-no-windows) 

     Veja neste artigo como configurar seu ambiente de desenvolvimento Windows para desenvolvimento rest com Django.

     Ler artigo
- ![](https://dkrn4sk0rn31v.cloudfront.net/uploads/2019/06/14170401/COMANDOS-SYMFONY-400x280.png)  [ PHP ](https://www.treinaweb.com.br/blog/categoria/php) 

     8 anos atrás

    ##  [ Principais comandos do Symfony CLI ](https://www.treinaweb.com.br/blog/principais-comandos-do-symfony-cli) 

     Nesse artigo falaremos sobre o utilitário de linha de comando symfony. Veremos como realizar a criação de projetos, utilizar o servidor de desenvolvimento, executar comandos da aplicação e outros recursos.

     Ler artigo
- ![](https://dkrn4sk0rn31v.cloudfront.net/uploads/2021/08/deploy-de-uma-aplicacao-spring-boot-no-heroku-400x280.png)  [ Java ](https://www.treinaweb.com.br/blog/categoria/java) 

     5 anos atrás

    ##  [ Deploy de uma aplicação Spring Boot no Heroku ](https://www.treinaweb.com.br/blog/deploy-de-uma-aplicacao-spring-boot-no-heroku) 

     Neste artigo veremos como podemos realizar o deploy de uma aplicação Spring Boot na nuvem com o Heroku.

     Ler artigo

## Um ano de acesso total para você viver de programação.

 Todos os cursos e formações da TreinaWeb numa única assinatura, com professores que atuam no mercado, suporte direto e certificados. Do primeiro `console.log` ao mercado de trabalho.

- **1 ano** de acesso a **todos os cursos**
- Cursos novos **toda semana**
- Suporte **direto com professores**
- Plano de carreira **personalizado**
- **Certificados digitais** inclusos
- **Aplicativos** para Android e iOS, com **acesso offline**

    **Garantia incondicional de satisfação** 

 Teste por 7 dias e, se não fizer sentido para você, devolvemos seu dinheiro.

### Acesso completo a todos os cursos e dezenas de Formações.

 12 meses 

  Economize R$ 840,00  54% OFF 

 de 12x R$ 129,00 por apenas

 12x  R$ 59,00

 sem juros no cartão de crédito ou R$ 599,00 à vista

  Oferta termina em  **02h 44min 30s**

- Acesso imediato e ilimitado durante 1 ano.
- Plano de carreira personalizado.
- Suporte direto com professores.
- E muito mais!

 [Matricule-se agora](https://www.treinaweb.com.br/checkout/pagamento/plano/anual?cupom=TW-SCLIENTE26)

     [                ](https://www.treinaweb.com.br)

 Escola online de programação, tecnologia e IA.

- [  ](https://www.facebook.com/TreinaWeb/)
- [  ](https://www.instagram.com/treinaweb/)
- [  ](https://www.youtube.com/user/TreinaWeb)
- [  ](https://twitter.com/treinaweb)
- [  ](https://www.linkedin.com/company/treinaweb)
- [  ](https://github.com/treinaweb)

## Inscreva-se em nossa newsletter

Receba lançamentos, promoções e novidades.

   Seu nome     Seu WhatsApp     Seu melhor e-mail   Inscrever-se 

## Cursos

- [ Base para Devs ](https://www.treinaweb.com.br/categoria/base-para-devs)
- [ Front-end ](https://www.treinaweb.com.br/categoria/desenvolvimento-front-end)
- [ Back-end ](https://www.treinaweb.com.br/categoria/desenvolvimento-back-end)
- [ Mobile ](https://www.treinaweb.com.br/categoria/desenvolvimento-mobile)
- [ Bancos de Dados ](https://www.treinaweb.com.br/categoria/bancos-de-dados)
- [ Cloud ](https://www.treinaweb.com.br/categoria/cloud-computing)
- [ IA ](https://www.treinaweb.com.br/categoria/ia)
- [ E mais ](https://www.treinaweb.com.br/categoria/e-mais)
- [ Ver todos os cursos ](https://www.treinaweb.com.br/cursos)

## Conteúdo

- [ Formações ](https://www.treinaweb.com.br/formacoes)
- [ Projetos práticos ](https://www.treinaweb.com.br/projetos-praticos)
- [ Direto ao ponto ](https://www.treinaweb.com.br/direto-ao-ponto)
- [ Planos ](https://www.treinaweb.com.br#assinatura)
- [ Depoimentos ](https://www.treinaweb.com.br#depoimentos)
- [ Comunidade ](https://www.treinaweb.com.br#comunidade)
- [ Corpo docente ](https://www.treinaweb.com.br#docente)

## A empresa

- [ Sobre a TreinaWeb ](https://www.treinaweb.com.br#sobre)
- [ Perguntas frequentes ](https://www.treinaweb.com.br#faq)
- [ Vantagens de estudar na TreinaWeb ](https://www.treinaweb.com.br/vantagens-de-estudar-na-treinaweb)
- [ Cursos para empresas ](https://www.treinaweb.com.br/empresas)
- [ Sugira um novo curso ](https://www.treinaweb.com.br/sugerir-curso)
- [ Trabalhe conosco ](https://www.treinaweb.com.br/trabalhe-conosco)
- [ Artigos ](https://www.treinaweb.com.br/blog)
- [ Desenvolvedores e agentes ](https://www.treinaweb.com.br/developers)
- [ Contato ](https://www.treinaweb.com.br/contato)
- [ Política de privacidade ](https://www.treinaweb.com.br/politica-de-privacidade)
- [ Termos de uso ](https://www.treinaweb.com.br/termos-de-uso)

## Baixe nosso aplicativo

 [   Disponível na **App Store**  ](https://apps.apple.com/us/app/treinaweb/id1322729447) [   Disponível no **Google Play**  ](https://play.google.com/store/apps/details?id=br.com.treinaweb.mobile) 

  Av. Paulista, 1765, Conj 71 e 72 · Bela Vista · São Paulo · SP · 01311-200   © 2004 – 2026 TreinaWeb Tecnologia LTDA · CNPJ 06.156.637/0001-58
