Ajuda com funções e banco de dados.

Tire suas dúvidas sobre programação em AutoHotkey

Moderator: Gio

Jeferson Cardoso
Posts: 2
Joined: 07 Aug 2020, 17:25

Ajuda com funções e banco de dados.

10 Aug 2020, 18:24

Boa tarde tudo bem com vocês?
Olha, estava precisando de uma ajuda, vocês poderiam me ajudar ou me orientar, a realizar algumas funções?

Eu consegui desenvolver a parte gráfica para que pudesse ser mais simples de se usar o programa sem a necessidade de editar dentro do arquivo AHK, porém eu não consegui fazer um banco de dados para que fosse gravado e lido as funções.

Minha pretensão, é que o programa abra o Google Chrome, abra os sites que cada um dos dados pertencem e realize os logins automaticamente.


Hoje eu uso o script assim:

Code: Select all


F8::
Run www.siteparaologin.com ;aqui vai o site que vamos logar
Send {Sleep 200}{Tab}{Tab}{Sleep 120}[email protected]{Tab}{Sleep 10}minhasenha{Sleep 50}{Tab}digitar a campanha{Sleep 50}{Enter}{ESC}{Tab}{Enter}
return


Ai na interface eu quero reproduzir isso, com os dados que vão tá no bando de dados...


Obs: na interface eu coloquei os checkbox para poder selecionar eles e iniciar somente os serviços selecionados de modo automático e todos de uma vez, e ou fazer na hotkey mapeada de forma manual.

Essa é a interface (template)...

Code: Select all

;---------------------------------------- Checkbox config ------------------------------------------------------

;cima
Gui, Add, Checkbox, x187 y144,
Gui, Add, Checkbox, x565 y144,
Gui, Add, Checkbox, x376 y144,

;baixo
Gui, Add, Checkbox, x187 y225,
Gui, Add, Checkbox, x376 y225,
Gui, Add, Checkbox, x565 y225,



;---------------------------------------- hotkeys ------------------------------------------------------

IniRead, Key1, %Settings%, , Key1, F1
IniRead, Key2, %Settings%, , Key2, F2
IniRead, Key3, %Settings%, , Key3, F3
IniRead, Key4, %Settings%, , Key4, F4
IniRead, Key5, %Settings%, , Key5, F5
IniRead, Key6, %Settings%, , Key6, F6

;cima
Gui Add, Hotkey, vKey1                    x255 y107 w40 h21, %Key1%
Gui Add, Hotkey, vKey2                    x440 y107 w40 h21, %Key2%
Gui Add, Hotkey, vKey3                    x633 y107 w40 h21, %Key3%

;baixo
Gui Add, Hotkey, vKey4                    x255 y188 w40 h21, %Key4%
Gui Add, Hotkey, vKey5                    x440 y188 w40 h21, %Key5%
Gui Add, Hotkey, vKey6                    x633 y188 w40 h21, %Key6%



;---------------------------------------- Botões ------------------------------------------------------
Gui Add, GroupBox,                        x181 y94 w540 h81, Geral	;Contorno grupo 1

;cima
Gui, Add, Button, x217 y133 w110 h36 gTELA_CALL_1, Call Center
Gui, Add, Button, x406 y133 w110 h36 gTELA_SZ_1, Chat
Gui, Add, Button, x595 y133 w110 h36 gTELA_ERP_1, Sistema



Gui Add, GroupBox,                        x181 y174 w540 h81, Suporte ;Contorno grupo 2

;baixo
Gui, Add, Button, x217 y215 w110 h36 gTELA_SGO_1, SGO
Gui, Add, Button, x406 y215 w110 h36 gTELA_GRAFANA_1, Grafics
Gui, Add, Button, x595 y212 w110 h36 gTELA_ONU_1, Operacional



;---------------------------------------- Botões salvar e executar ------------------------------------------------------
Gui Add, GroupBox,                         x316 y258 w287 h51, Finalizar ; Contorno grupo 3

Gui Add, Button,                           x330 y275 w80 h23, &Salvar
Gui Add, Button,                           x420 y275 w80 h23, &Cancelar
Gui Add, Button,                           x510 y275 w80 h23, &Resetar
Gui Add, Button, 						   x406 y330 w110 h36, &Iniciar



;-------------------------------------------- Titulo e Logo PNG ------------------------------------------------------

Gui, Add, Picture, x302 y15 w252 h70, %A_ScriptDir%/IMG/LogoAL.png
Gui, Add, Picture, x750 y374 w136 h69, %A_ScriptDir%/IMG/logo.png



;---------------------------------------------------- Janela ---------------------------------------------------------

Lv_ModifyCol(1, 100)
Lv_ModifyCol(2, 70)


Gui, Show, w900 h450, Auto Login (V 0.0.1)
Return




;*******************************************_TELAS DE LOGIN_******************************************************


;---------------------------------------- ***CALL CENTER*** ------------------------------------------------------

TELA_CALL_1:

;LOGIN
Gui, 2: Add, Text,                          x42 y15 w50 h16, Login
Gui, 2: Add, Edit,		                    x37 y30 w326 h25,
;SENHA
Gui, 2: Add, Text,                          x42 y70 w50 h16, Senha
Gui, 2: Add, Edit,                          x37 y85 w326 h25 +Password,
;RAMAL
Gui, 2: Add, Text,                          x181 y125 w50 h16, Ramal
Gui, 2: Add, Edit,                          x151 y140 w100 h25,
;FILAS
Gui, 2: Add, Text,                          x42 y170 w50 h16, Filas*
Gui, 2: Add, Edit,                          x37 y185 w326 h25,

;Botão Salvar
Gui, 2: Add, Button,                        x151 y240 w95 h23, &Salvar

;CONFIGURAÇÃO JANELA
Gui, 2: Show, w400 h300, Login - Call Center
Return




;---------------------------------------- ***CHAT*** ------------------------------------------------------

TELA_SZ_1:

;LOGIN
Gui, 3: Add, Text,                          x42 y15 w50 h16, Login
Gui, 3: Add, Edit,                      	x37 y30 w326 h25,
;SENHA
Gui, 3: Add, Text,                          x42 y70 w50 h16, Senha
Gui, 3: Add, Edit,                      	x37 y85 w326 h25 +Password,

;RAMAL
Gui, 3: Add, Text,                          x42 y125 w50 h16, Campanhas
Gui, 3: Add, Edit,                          x37 y140 w326 h25,

;Botão Salvar
Gui, 3: Add, Button,                        x151 y190 w95 h23, &Salvar

;CONFIGURAÇÃO JANELA
Gui, 3: Show, w400 h250, Login - Chat

Return


;---------------------------------------- ***Sistema*** ------------------------------------------------------

TELA_ERP_1:

;LOGIN
Gui, 4: Add, Text,                          x42 y15 w50 h16, Login
Gui, 4: Add, Edit,                      	x37 y30 w326 h25,
;SENHA
Gui, 4: Add, Text,                          x42 y70 w50 h16, Senha
Gui, 4: Add, Edit,                      	x37 y85 w326 h25 +Password,

;Botão Salvar
Gui, 4: Add, Button,                        x151 y149 w95 h23, &Salvar

;CONFIGURAÇÃO JANELA
Gui, 4: Show, w400 h200, Login - Sistema

Return


;---------------------------------------- ***SGO*** ------------------------------------------------------

TELA_SGO_1:

;LOGIN
Gui, 5: Add, Text,                          x42 y15 w50 h16, Login
Gui, 5: Add, Edit,                      	x37 y30 w326 h25,
;SENHA
Gui, 5: Add, Text,                          x42 y70 w50 h16, Senha
Gui, 5: Add, Edit,                      	x37 y85 w326 h25 +Password,

;Botão Salvar
Gui, 5: Add, Button,                        x151 y149 w95 h23, &Salvar

;CONFIGURAÇÃO JANELA
Gui, 5: Show, w400 h200, Login - SGO

Return


;---------------------------------------- ***GRAFICS*** ------------------------------------------------------

TELA_GRAFICS_1:

;LOGIN
Gui, 6: Add, Text,                          x42 y15 w50 h16, Login
Gui, 6: Add, Edit,                      	x37 y30 w326 h25,
;SENHA
Gui, 6: Add, Text,                          x42 y70 w50 h16, Senha
Gui, 6: Add, Edit,                      	x37 y85 w326 h25 +Password,

;Botão Salvar
Gui, 6: Add, Button,                        x151 y149 w95 h23, &Salvar

;CONFIGURAÇÃO JANELA
Gui, 6: Show, w400 h200, Login - Grafics

Return


;---------------------------------------- ***OPERACIONAL*** ------------------------------------------------------

TELA_OPE_1:

;LOGIN
Gui, 7: Add, Text,                          x42 y15 w50 h16, Login
Gui, 7: Add, Edit,                      	x37 y30 w326 h25,
;SENHA
Gui, 7: Add, Text,                          x42 y70 w50 h16, Senha
Gui, 7: Add, Edit,                      	x37 y85 w326 h25 +Password,

;Botão Salvar
Gui, 7: Add, Button,                        x151 y149 w95 h23, &Salvar

;CONFIGURAÇÃO JANELA
Gui, 7: Show, w400 h200, Login - OPERACIONAL

Return


;---------------------------------------- \/ Scripts functions \/ ------------------------------------------------------


Agradeço a ajuda de vocês desde já.
Obrigado!
User avatar
Gio
Posts: 1038
Joined: 30 Sep 2013, 10:54
Location: Brazil

Re: Ajuda com funções e banco de dados.

11 Aug 2020, 12:43

Bom dia Jeferson Cardoso.

Seja bem-vindo ao fórum da comunidade do AutoHotkey.


A grosso modo, um banco de dados é um sistema complexo de gerenciamento de tabelas interelacionadas, normalmente destinado a aplicações que controlarão quantidades ENORMES de dados.

Um exemplo: imagine que você tem uma loja que faz muitas vendas todos os dias e que você queira manter organizadas TODAS as informações sobre as vendas (o que foi vendido, para quem, por quanto, em qual quantidade, em qual data, por qual vendedor); os estoques (quais itens, quanto foram comprados de cada, em quais data, quais as validades, quantos foram vendidos, em quais datas, etc); os clientes (nome, cpf, rg, endereço, telefone, etc); os fornecedores (razao social, cnpj/cpf, telefone, endereco, etc) e etc. Neste caso, um banco de dados será com certeza recomendado.

Mas quando você quer manter apenas alguns dados de registro organizados, sugiro que tente trabalhar apenas com arquivos. A razão é que arquivos simples são bem mais fáceis de configurar e de escrever as rotinas de leitura/gravação.

:arrow: Para trabalhar com arquivos, você pode utilizar os comandos FileRead, FileAppend, FileDelete para controlar arquivos de texto, OU então criar objetos do tipo File para controlar arquivos em geral OU até mesmo se preferir, usar arquivos do tipo .ini, que têm uma estrutura simples que pode ser usada para organizar os dados e que podem ser manipulados através dos comandos IniRead, IniWrite e IniDelete.

:arrow: Mas se de outra forma você quiser realmente implementar um banco de dados para sua aplicação, precisamos primeiro definir com qual gerenciador de bancos de dados você vai querer trabalhar (SQL Server, MySQL, Oracle, etc). Depois disso, basta instalar e configurar o gestor do banco e em seguida podemos proceder à conexão através do script.
Jeferson Cardoso
Posts: 2
Joined: 07 Aug 2020, 17:25

Re: Ajuda com funções e banco de dados.

12 Aug 2020, 15:26

Boa tarde Gio, muito obrigado pelas boas vindas!

Olha gostei bastante da ideia Gio, você poderia me ajudar ou auxiliar melhor como eu faria esses arquivos para salvar os dados de login, ler e reproduzi-los?
User avatar
Gio
Posts: 1038
Joined: 30 Sep 2013, 10:54
Location: Brazil

Re: Ajuda com funções e banco de dados.

12 Aug 2020, 17:23

Sem problemas.

Pela descrição da sua necessidade, sugiro que use arquivos do tipo .ini para fazer a escrita/leitura das informações. Este tipo de arquivo é bastante utilizado para salvar parâmetros de configurações, e é um arquivo de texto com uma estrutura de informações bastante simples que permite inclusive o debugging direto em um editor de texto (caso precise).

Assim, precisamos entender primeiro como funciona a estrutura do arquivo .ini. Este tipo de arquivo possui uma estrutura (forma de organizar a informação) que pode ser definida a partir do layout de exemplo a seguir:

Code: Select all

[nome_da_secao_1]
chave_1_da_secao_1=valor
chave_2_da_secao_2=valor
chave_3_da_secao_2=valor

[nome_da_secao_2]
chave_1_da_secao_2=valor
chave_2_da_secao_2=valor

:arrow: Observe que o arquivo é totalmente feito de texto, e que o texto do arquivo é dividido em seções, sendo que cada seção é definida colocando-se o nome dela entre símbolos de colchetes (ou seja, [ e ]), e seguindo-se imediatamente embaixo virão as linhas com as chaves daquela seção, sendo que cada chave pode conter um único valor.

Assim, imagine que queiramos salvar informações sobre frutas. Podemos criar então uma seção no texto do nosso arquivo .ini para cada fruta, e depois, para cada característica de cada fruta, criaremos uma chave nas respectivas seções.

Code: Select all

[banana]
cor=amarelo
sabor=doce
custo=5

[limao]
cor=verde
sabor=azedo
custo=8

[uva]
cor=roxo
sabor=doce
custo=12

:arrow: Agora imagine que queremos que o nosso programa exiba o valor do custo da fruta "uva". Como faremos para que o script leia exatamente essa informação do arquivo .ini? Simples: usaremos o comando IniRead. Faremos isso assim:

1. Primeiro salve o texto do código acima no bloco de notas, escolhendo nas opções de salvamento o tipo "todos os arquivos" e dando a ele o nome "exemplo.ini".
2. Depois, salve o código do script abaixo em um script de autohotkey na mesma pasta do arquivo .ini que você salvou no passo 1.
3. Rode o script salvo e veja o resultado.

Code: Select all

IniRead, VALOR_ENCONTRADO, %A_ScriptDir%/exemplo.ini, uva, custo
msgbox % VALOR_ENCONTRADO

:arrow: Se tudo deu certo, o código do script exibiu o resultado 12 (que é de fato o custo da uva no nosso arquivo .ini). Portanto, veja como fica fácil recuperar (ler) informações escritas em um arquivo .ini usando o comando IniRead.


Agora vamos entender como fazemos para que o nosso script ESCREVA no arquivo ini. Para isso, usaremos o comando IniWrite.

Então suponhamos que devido a um aumento do preço no mercado, queiramos redefinir o custo da uva em 16. Para fazer isso sem precisar editar diretamente no arquivo .ini, podemos escrever um comando IniWrite no nosso script. Exemplo:

Code: Select all

IniWrite, 16,  %A_ScriptDir%/exemplo.ini, uva, custo
IniRead, VALOR_ENCONTRADO, %A_ScriptDir%/exemplo.ini, uva, custo
msgbox % VALOR_ENCONTRADO
:arrow: Escreva o código acima no script que está na mesma pasta do arquivo .ini do nosso exemplo e depois execute esse script. Veja que o valor do custo agora é 16. Como escrevemos no arquivo, é possível rodar o script anterior (que apenas fazia a leitura) e ver que ele também vai exibir 16 agora (pois a alteração foi feita no arquivo).

:arrow: Arquivos são salvos na memória não-volátil do computador (ou seja, no disco HD ou SSD). Isso significa que esses valores não são apagados quando fechamos o script e nem quando desligamos o computador. Por este motivo, sempre que queiramos salvar informações entre execuções diferentes de um script, usaremos arquivos.

Com essa explicação acredito que você já deve ter tido uma boa ideia de como usar arquivos .ini para salvar (e depois ler) os dados que precisa, certo? Se depois de tentar entender o funcionamento pela explicação acima você ainda tiver alguma dúvida, basta postar abaixo. Estamos aqui para ajudá-lo :beer:

Return to “Ajuda e Suporte Geral”

Who is online

Users browsing this forum: Gio and 3 guests