Instale o zBot (para Windows). Rode este sistema no seu computador e vários outros que podem ser baixados diretamente pelo zBot ou criados por você mesmo(a)!
15/11/2023 | Build: 108
Do pacote: Script Enviador Whats
Descrição: Exemplo mostrando como emular cliques e digitação para enviar mensagens para uma lista de contatos. Esta demonstração utiliza o Whatsapp Web, mas pode ser modificada para outras plataformas.
&CriarBotao("1- Abrir Whatsapp Web";"abrir whatsapp";200) //*
&CriarBotao("2- Definir mensagens";"definir mensagens";200) //*
&CriarBotao("3- Inserir contatos";"inserir contatos";200) //*
&CriarBotao("4- Configurações de envio";"configurações";200) //*
&CriarBotao("5- Efetuar envio";"efetuar envio";180) //*
&CriarBotao("🚶Abrir contato atual";"abrir contato atual";220) //*
&CriarBotao("Zerar status";"zerar status") //*
&TbAdicionarCampo("arquivo"; "texto")[0] //* tipo: texto, inteiro, moeda, data
&TbDefinirCamposVisiveis("id_unico,nome,whatsapp,data_contato,categoria,status,data_cadastro,data_atualização,obs,arquivo")[0] //*
#zerar status
&TbSelecionarTudo("sim")[0] //* sim marca tudo. não desmarca tudo
&TbSelecionadosValorDefinir("status";"")[0] //*
&TbSelecionarTudo("não")[0] //* sim marca tudo. não desmarca tudo
#
#inicializar variáveis
//* Essas informações servem apenas para referência para sabermos o que é usado no código
[mensagem] = ""
[legenda] = ""
[arquivo] = ""
[numero] = ""
[nome] = ""
[definiu_mensagens] = "não"
#
#inserir contatos
[lista_contatos] = ""
&ValorPedirVarios("Inserir contatos do Whatsapp"; "lista_contatos")[0] //*
&Se([lista_contatos];#-\#-/;"")
&TextoQtdLinhas([lista_contatos]; "qtd")[0] //*
&Repetir([qtd]) //* a variável _indice terá o número do ciclo atual
[contato] = [lista_contatos*[_indice]]
//&TextoDeixarNumeros([contato];"contato")[0] //* Retorna os números de um texto
&TextoFormatarTelefone([contato];"contato")[0] //*
[linha] = ""
&TbLocalizar("whatsapp";[contato]; "linha")[0] //*
&Se([linha*whatsapp];=;"")
&StatusInserir("Inserido: [contato]";"sucesso")[0]
&TbInserir("whatsapp";[contato])[0] //*
.senao
&StatusInserir("Já existe: [contato]";"erro")[0]
.fimse
.fimrepetir
.fimse
#
#definir mensagens
&ValorPedirVarios("Mensagens para enviar"; "mensagem1, imagem1, legenda_img1, arquivo1, legenda_arq1, mensagem2, imagem2, legenda_img2")[0] //*
[definiu_mensagens] = "sim"
#
// Função principal de envio
#efetuar envio
&Se([definiu_mensagens];diferente;"sim")
&Mensagem("Primeiro clique em DEFINIR MENSAGENS")
&ScriptEncerrar()
.fimse
&TbComando("primeiro")[0] //* primeiro, anterior, próximo, último, apagar
&Marcador("loop")
&TbLerLinha("linha")[0] //*
[numero] = [linha*whatsapp]
&TextoDeixarNumeros([numero];"numero")[0] //* Retorna os números de um texto
[nome] = [linha*nome]
&Se([numero];igual;"")
&VaiPara("continuar")
.fimse
&TbLerCampo("status")[0] //*
&Se([status];#-\#-/;"")
&VaiPara("continuar")
.fimse
&TextoAdicionarComeco([numero]; [Código do país]; "numero")[0] //*
&BlocoExec("abrir whatsapp")[1] //*
&BlocoExec("aguardar contato abrir")[2] //*
&Se([contato_abriu];"igual";"sim")
&StatusInserir("Enviando mensagem para [numero]";"cinza")[0]
&BlocoExec("enviar mensagens")[0] //*
&TbValorDefinir("status"; "envio processado")[0] //*
&TextoHojeInfo("data")[0] //* valor -#-/ data, ano, mês, dia, hora, minuto, segundo, dia_semana, secao_hora
&TbValorDefinir("data_contato"; [data])[0] //*
[enviou] = "sim"
.senao
&StatusInserir("Abertura do contato não identificada. Indo para o próximo...";"erroMensagem 1Olá, testesMensagem 1Olá, testes")[0]
.fimse
&Marcador("continuar")
&TbComando("próximo")[0] //* primeiro, anterior, próximo, último, apagar
&Se([último resultado];"diferente";"FALHA")
&VaiPara("loop")
.senao
&Mensagem("Fim do processamento")
.fimse
&Se([enviou];#-\#-/;"sim")
&Mensagem("Nenhum envio foi efetuado. O sistema só envia para registros com status vazio. Carregue uma lista de números ou clique no botão ZERAR STATUS para enviar novamente para esta mesma lista")
.fimse
#
//* Função que envia as mensagens preenchidas para o contato atual
#enviar mensagens
&NavegadorClicarPerguntar(20231115151639400;"Indique o local do campo onde digita a mensagem")[0.5] //*
[mensagem] = [mensagem1]
&Se([mensagem];"diferente";"")
&StatusInserir("Enviando mensagem 1";"preto")[0]
&ValorProcessar("mensagem")[0] //*
&BlocoExec("enviar texto")[0] //*
.fimse
[arquivo] = [imagem1]
[legenda] = [legenda_img1]
&ValorProcessar("legenda")[0] //*
&Se([arquivo];"diferente";"")
&StatusInserir("Enviando imagem 1";"preto")[0]
&BlocoExec("enviar imagem")[0] //*
.fimse
[arquivo] = [arquivo1]
[legenda] = [legenda_arq1]
&ValorProcessar("legenda")[0] //*
&Se([arquivo];"diferente";"")
&StatusInserir("Enviando arquivo 1";"preto")[0]
&BlocoExec("enviar arquivo")[0] //*
.fimse
[mensagem] = [mensagem2]
&Se([mensagem];"diferente";"")
&StatusInserir("Enviando mensagem 2";"preto")[0]
&ValorProcessar("mensagem")[0] //*
&BlocoExec("enviar texto")[0] //*
.fimse
[arquivo] = [imagem2]
[legenda] = [legenda_img2]
&ValorProcessar("legenda")[0] //*
&Se([arquivo];"diferente";"")
&StatusInserir("Enviando imagem 2Mensagem 1Olá, testesMensagem 1Olá, testes";"preto")[0]
&BlocoExec("enviar imagem")[0] //*
.fimse
#
#abrir contato atual
&TbLerCampo("whatsapp")[0] //*
[numero] = [whatsapp]
&mensagem([numero])
&TextoDeixarNumeros([numero];"numero")[0] //* Retorna os números de um texto
[whatsapp_url] = "https://web.whatsapp.com/send?phone=[numero]"
&NavegadorIr([whatsapp_url])[1] //*
#
0
//* - - - - - - - - - - -
#abrir whatsapp
[whatsapp_url] = "https://web.whatsapp.com/send?phone=[numero]"
&NavegadorIr([whatsapp_url])[1] //*
&NavegadorPosicionar(50;50;1140;762)[0] //* topo, esquerda, largura, altura
#
#aguardar contato abrir
[contador]=1
[contato_abriu] = "não"
&Marcador("aguardar")
&NavegadorTextoObter("texto_navegador")[0] //*
&TextoTem([texto_navegador];[texto do campo de mensagem];"resultado")[0] //* texto Digite uma mensagem
&Se([contador];maior;[ciclos de espera para abrir contato])
&VaiPara("sair aguardar")
.fimse
&Se([resultado];"igual";"não")
&StatusInserir("aguardando contato abrir";"alerta")[0] //*
&ValorInc("contador";1)[5] //*
&Se([contador];"maior";2)
//* Vamos ver então se o contato é inválido
[resultado2] = "não"
&TextoTem([texto_navegador];[mensagem de contato inválido];"resultado2")[0] //*
&Se([resultado2];"igual";"sim")
[contato_abriu] = "não"
&StatusInserir("Contato inválido";"erro")[0] //*
&TbValorDefinir("status"; "contato inválido")[0] //*
&VaiPara("sair aguardar")
.fimse
//* Vamos ver então se o contato bloqueado
[resultado3] = "não"
&TextoTem([texto_navegador];[texto contato bloqueado];"resultado3")[0] //*
&Se([resultado3];"igual";"sim")
[contato_abriu] = "não"
&StatusInserir("Contato bloqueado";"erro")[0] //*
&TbValorDefinir("status"; "contato bloqueado")[0] //*
&VaiPara("sair aguardar")
.fimse
.fimse
&VaiPara("aguardar")
.fimse
[contato_abriu] = "sim"
&Marcador("sair aguardar")
#
#configurações
&ValorPedirVarios("Configurações";"Código do país, Texto do campo de mensagem, Mensagem de contato inválido, texto contato bloqueado, Pausa operacional extra, Ciclos de espera para abrir contato")[0] //*
#
//* funções para envio de tipos de dados específicos
//* Considera que o cursor está ativo no campo de mensagem
#enviar texto
&Se([mensagem];"diferente";"") //* teste -#-/ igual, diferente, contém, não contém, começa, não começa, termina, não termina
&NavegadorClicarPerguntar(20231115151639400;"Indique o local do campo onde digita a mensagem")[0.5] //*
&ColarTexto([mensagem])[1] //* Cola um valor definido no parâmetro
&Pausar([pausa operacional extra])
&NavegadorClicarPerguntar(20231115151639401;"Local do botão para enviar a mensagem")[2] //*
.fimse
#
#enviar imagem
&Se([arquivo];"diferente";"") //* teste -#-/ igual, diferente, contém, não contém, começa, não começa, termina, não termina
&NavegadorClicarPerguntar(20231115151639400;"Indique o local do campo onde digita a mensagem")[0.5] //*
&ColarArquivo([arquivo])[5] //*
&Pausar([pausa operacional extra])
&Se([legenda];"diferente";"")
&NavegadorClicarPerguntar(20231115151639402;"Local do campo de legenda")[1] //*
&ColarTexto([legenda])[1] //* Cola um valor definido no parâmetro
.fimse
&NavegadorClicarPerguntar(20231115151639403;"Local do botão para enviar a imagem")[2] //*
&Pausar([pausa operacional extra])
.fimse
#
#enviar arquivo
&Se([arquivo];"diferente";"") //* teste -#-/ igual, diferente, contém, não contém, começa, não começa, termina, não termina
&NavegadorClicarPerguntar(20231116171700903;"Local do botão para anexar o arquivo")[1] //*
&NavegadorClicarPerguntar(20231116171700904;"Opção DOCUMENTO")[5] //*
&Pausar([pausa operacional extra])
&ColarTexto([arquivo])[0.5] //*
&DigitarEnter()[3]
&Pausar([pausa operacional extra])
&Se([legenda];"diferente";"")
&NavegadorClicarPerguntar(20231116171700905;"Local do campo de legenda")[1] //*
&ColarTexto([legenda])[1] //* Cola um valor definido no parâmetro
.fimse
&NavegadorClicarPerguntar(20231116171700906;"Local do botão para enviar o arquivo")[2] //*
.fimse
#
#enviar vídeo
&Se([arquivo];"diferente";"") //* teste -#-/ igual, diferente, contém, não contém, começa, não começa, termina, não termina
&NavegadorClicarPerguntar(20231116171700903;"Local do botão para anexar o arquivo")[1] //*
&NavegadorClicarPerguntar(20231116174620275;"Opção Fotos e Vídeos")[5] //*
&Pausar([pausa operacional extra])
&ColarTexto([arquivo])[0.5] //*
&DigitarEnter()[3]
&Pausar([pausa operacional extra])
&Se([legenda];"diferente";"")
&NavegadorClicarPerguntar(20231116171700905;"Local do campo de legenda")[1] //*
&ColarTexto([legenda])[1] //* Cola um valor definido no parâmetro
.fimse
&NavegadorClicarPerguntar(20231116171700906;"Local do botão para enviar o vídeo")[5] //*
&Pausar([pausa operacional extra])
.fimse
#
// // //
#informações
Atenção: Na primeira vez que conectar com o Whatsapp Web, aguarde uns 15 minutos antes de começar a usar, pois o Whatsapp demora muito até preparar todo o banco de dados. Se não fizer isso, o envio pode falhar e você vai achar muito lento, quando na verdade bastaria aguardar o carretamento completo do banco, que só precisa ser feito uma vez.
1- Comece abrindo o Whatsapp Web para iniciar o navegador e se certificar de que a sua conta do Whatsapp está aberta;
2- Comece clicando no botão "definir mensagem";
2- Em seguida, revise as configurações em "configurações de envio";
4- Insira, abra ou cole a lista de contatos (números) que receberão a mensagem;
5- Clique em "efetuar envio" para enviar as mensagens
- - - - - -
Ao definir as mensagens, simplesmente deixe em branco os campos que não quiser usar
#
#informações_exibir
&ExecutarComando("https://www.linkws.com.br/zbot/loja/script_det.php?id=20106132536295")[0]
#