Manual Do Autoit

download Manual Do Autoit

of 28

Transcript of Manual Do Autoit

Esse tutorial tem como objetivo explicar o princpio bsico de programao, e para o estudo eu escolhi o AutoIT por ser de fcil entendimento e ter recursos suficientes para realizar uma grande quantidade de tarefas.

Fazendo uma analogia com a vida real, uma linguagem de programao seria a forma de como ns escrevemos nossas palavras, e para que algum entenda o que voc escreveu existem vrias regras que devem ser seguidas, tais como acentuao, pontos, virgulas, etc... .

J um programa/script uma seqncia de "ordens" escrita em uma determinada linguagem que ser executada pelo processador de seu pc, seguindo a mesma seqncia em que foi escrita ( lgica de programao).

Para que o processador seja capaz de executar tal "ordens", entra em sena o "compilador", que responsvel por traduzir o que voc escreveu para uma linguagem que o processador entenda.

Como voc pode perceber o computador embora parea ser dotado de inteligncia, na realidade ele apenas cumpre "ordens", ento se uma "ordem" bem elaborada tudo ir ocorrer como de se esperar, caso contrrio poder gerar travamentos ou simplesmente ele no far o esperado.

O processo de criao de um programa pode seguir as seguintes etapas:1. A analise do que o programa dever fazer ( problema a ser resolvido ou uma tarefa a ser realizada )

2. A seleo da linguagem que possibilite fazer tal programa

3. A estruturao do cdigo ( lgica de programao).

4. Escrita do cdigo, usando a linguagem escolhida e obedecendo sua sntese (forma de escrita, regras, etc...).

5. Transformar o que foi escrito em um cdigo que o cpu entenda (compilao)

Como estamos em um frum voltado para emulao, vou dar um exemplo dos passos acima usando esse tema ( emulao ).

1. A analise do que o programa dever fazer ( problema a ser resolvido ou uma tarefa a ser realizada ) Bom..., eu uso um front-end e ele capaz de chamar o emulador Mame, passando para ele o nome do jogo que eu desejo carregar, o problema que depois do jogo ser carregado o Mame me mostra uma tela onde eu devo pressionar as teclas "OK" para que o jogo inicie, e como eu estou usando um joystick isso no possvel. Ento devo fazer um programa que faa essa tarefa sem eu ter que conectar um teclado.

2. A seleo da linguagem que possibilite fazer tal programa Bom..., eu j sei oque preciso fazer, ento agora preciso saber qual linguagem de programao capaz de enviar tal teclas para que essa tela gerada pelo Mame seja fechada.

H j sei..., o AutoIT tem funo que capaz de fazer isso, vou us-la.

3. A estruturao do cdigo ( lgica de programao). Deixa eu ver..., vou fazer com que o front-end chame o meu programa ao invs do Mame, e o meu programa por sua vez ir chamar o Mame e ficar aguardando por um determinado perodo e depois enviar as teclas "OK", feito isso ele ir ficar aguardando at que o Mame seja fechado, e apos isso ser encerrado tambm, fazendo com que o front-end fique ativo novamente.

4. Escrita do cdigo, usando a linguagem escolhida e obedecendo sua sntese (forma de escrita, regras, etc...).

Certo j sei o que tenho que fazer..., ento vou procurar os comandos no help do AutoIT e comear a escrever o cdigo usando essa "estrutura/lgica" elaborada e obedecendo a sntese dessa linguagem.

5. Transformar o que foi escrito em um cdigo que o cpu entenda (compilao) Beleza t quase l..., agora que eu j escrevi o cdigo falta chamar o "compilador" para traduzir o que eu escrevi para um cdigo que o processador entenda e possa executar as "ordens" que eu escrevi (transformar o arquivo de texto em um arquivo executvel ).

Agora vamos entender certas caractersticas base, da maioria das linguagens de programao.A memria e o armazenamento das informaes/programas. Muitas pessoas confundem o armazenamento fsico de informaes/programas com a memria de trabalho ( quem nunca ouviu uma frase parecida com: Quantos programas/jogos ele tem na memria ? ), em qualquer sistema computacional existem duas reas distintas ( armazenamento e memria).

O armazenamento refere-se a qualquer dispositivo que possa armazenar informaes/programas para que sejam usadas posteriormente ( hd, cd, dvd, diskete, eprom, etc...).

J a memria poderamos fazer uma analogia como se fosse uma folha de papel para rascunhos, que depois de ser usada poderamos jogar fora.

Obviamente essas informaes uma forma bem simplssima de demonstrar como as coisas realmente funcionam, mas como o objetivo facilitar ao mximo o entendimento por enquanto essas informaes so o suficiente para entendermos como os programas so armazenados e depois executados pelo processador.

O processo de execuo de um programa ocorre da seguinte maneira, ao chamarmos um programa o sistema operacional aloca um espao na memria e carrega o programa nessa rea e por fim da uma instruo e o "endereo de memria" para que o processador comece a executar o programa recm carregado, ao encerrar o programa o sistema operacional ir limpar essa rea de memria.

O "endereo de memria" est em negrito porque um dos princpios bsicos que devemos entender, so poucos os programas que no usam uma rea de memria para guardar dados enquanto est em execuo, um exemplo bem clssico seria um programa que incrementasse um valor qualquer por 1 at que ele tenham o valor que desejamos, para que esse programa funcione temos que usar um "endereo de memria" para guardar o valor do nmero atual para que depois possamos incrementar e por fim comparar se ele j alcanou o valor desejado.

Veja abaixo um trecho de cdigo que ilustra o que foi mencionado:

local $meu_numero

$meu_numero=1

while $meu_numero $meu_numero+=1

if $meu_numero >= 100 then

ExitLoop

endif

wend

ExitNo se preocupe por no conhecer algumas instrues mostradas nesse exemplo, elas sero explicadas no decorrer do tutorial, o que interessa no momento so os "endereo de memria", que na programao so chamados de "variveis". As "variveis" so responsveis por guardar as informaes que iremos utilizar em nossos programas, e para utilizar o contedo que elas armazenam basta cham-las pelo nome. ( no exemplo acima criamos uma varivel de nome "$meu_numero" que armazena um valor de 1) . Recapitulando uma "varivel" nada mais que um nome que damos a um "endereo de memria".

VariveisPara usufruirmos das "variveis", certas regras devem ser obedecidas ( cada linguagem de programao tem as suas regras prprias, mas a muitas so bens parecidas ), o AutoIT bem flexivel em relao a isso ( bem diferente de linguagens como c/c++ ), nesse tutorial irei citar apenas algumas.

D nomes sugestivos para as suas variveis, nunca use espaos entre os nomes (exe: $meu numero, errado), use o underline "_" ou letras maisculas para separar um nome composto (exe: $meu_numero ou $MeuNumero, correto ). Uma particularidade em relao aos nomes dados as variveis no AutoIT que todas devem comear com um "$" (cifro)

As "variveis" tem "tipos" pr definidos, isso quer dizer que depois de "declaradas" elas s podem armazenar um valor do mesmo "tipo". O AutoIT bem flexivel quanto aos "tipos" sendo basicamente somente dois "tipos", que so "variveis com valores numricos" e "variveis que iro conter textos/caracteres (as chamadas de strings)".(Obs: linguagens como c/c++ so muito criteriosas a respeitos de tipos de variveis)

Alm de uma "varivel" ter que obedecer a uma forma correta de escrita, e s poder ser usada para um "tipo" que foi pr definida, ainda temos que tomar o cuidado de "declarar" essa "vriavel" antes dela ser usada ( dica: o AutoIT tem opes que garantem que isso seja feito, ou seja na hora de compilar ele poder te avisar sobre esse fato). As instrues usadas para "declarar" uma varivel so: Local, Dim, Global, Const, cada uma dessas declaraes ser explicada no momento oportuno.

Usando a declarao "Local" estamos dizendo ao compilador que a varivel s deve ser vista (acessada) pelo "trecho de cdigo (funo)" onde ela foi "declarada", isso se deve ao fato de um programa poder ser dividido em varias partes (funes e ou proceduras), ento usamos essa declarao para proteger a varivel de um acesso indevido por parte de outras funes existentes no programa, e com isso tambm permite que tenhamos mais de uma varivel com o mesmo nome dentro de um mesmo programa, esse tipo de declarao chamada de "escopo" ou "visibilidade de uma varivel". Esse tipo de declarao o preferido a ser usado, isso porque o programa ir consumir menos memria, porque uma varivel declarada como "Local" s ir ocupar espao de memria quando ela for utilizada, e esse espao ser liberado automaticamente assim que a varivel no for mais necessria. Ao contrrio da declarao "Local" temos a declarao" "Global", que deve ser usada com muita cautela, porque com essa "declarao" a varivel s ser liberada quando o programa for encerrado, e com isso ir ocupar por um perodo maior mais quantidade de memria, fora outros conflitos que elas podem gera.

Antes de explicar o cdigo acima linha por linha, uma boa forma de programao sempre inicializar as as variveis, ou seja dar um valor inicial a cada uma delas, no AutoIT isso no obrigatrio mas uma boa prtica de programao e pode evitar muitas dores de cabea.

Anlise do cdigo acima:Local , informa ao compilador que a varivel declarada s deve existir enquanto o trecho do cdigo em que ela foi declarada estiver sendo executado.

$meu_numero, esse o nome que foi dado (varivel) a um "endereo de memria" onde iremos usar para guardar certas informaes, esse nome deve ser composto pelo caractere inicial "$" e seguido por mais letras, nmeros e ou caractere underline "_", no pode conter espaos em branco ( exe: meu numero), no pode conter mais que uma varivel, funo com o mesmo nome dentro do mesmo trecho de cdigo.

$meu_numero=1, nessa linha estamos "inicializando" a varivel com um valor numrico de "1" e com isso o compilador ir saber que essa varivel ir trabalhar com valores numricos, o outro valor possivel para variveis do AutoIT so os "textos" (strings), variveis do tipo string so "inicializadas" usando o valor entre aspas( exe: $meu_numero="1"), depois de inicializada uma varivel deve ser usada para manipular dados somente do mesmo tipo, no devemos atribuir "textos"(strings) , a uma varivel que foi inicializada como sendo numrica e vice e versa, (Obs: O AutoIT at permite que seja feito isso em certas ocasies, mas isso no uma boa prtica de programao, e pode trazer srios bugs ao seu programa).

while $meu_numero , a "instruo" "while" ser estuda mais a frente ( instrues de loop), a traduo dessa linha seria "faa enquanto a varivel $meu_numero for diferente de zero"

$meu_numero+=1, essa linha a responsvel por "incrementar" o valor da varivel "$meu_numero", os smbolos "+=" chamados de "operadores", a traduo dessa linha seria "a varivel $meu_numero (=)igual a ela mesma (+) mais 1(um) .(dica: para um melhor entendimento essa mesma linha poderia ser escrita assim: $meu_numero = $meu_numero + 1)

if $meu_numero >= 100 then, a instruo "if" ser estuda mais frente ( instrues de deciso), a traduo dessa linha seria: "Si a varivel $meu_numero for (>)maior ou (=)igual a 100 (then)ento execute a prxima linha".

ExitLoop, essa instruo permite sair de qualquer bloco de loop criado com as instrues ( while, for, do ), se essa instruo no fosse utilizada o bloco de cdigo "while at wend" seria executado at que a vrivel $meu_numero no suportasse mais o valor de que ela capaz de armazenar( isso ir depender do sistema operacional que pode ser de 32bits ou 64bits), em poucas palavra poderia travar o pc ou gerar um erro e terminar o programa(run-time error).

EndIf e Wend, essas instrues so complementos das instrues "If" e "While" elas so obrigatrias e servem para demarcar/organizar o cdigo para que fique fcil de entender onde uma instruo comea e termina, juntando isso e mais a "endentao" criamos um cdigo que quando outras pessoas forem ler entendam com mais clareza a lgica utilizada. ( dica: A endentao so os espaos utilizados no inicio do pargrafo para que o cdigo digitado em uma determinada linha fique bem claro que pertenam a um determinado bloco de instruo, isso porque podemos ter por exemplo vrias instrues "If" uma dentro da outra.)

Trecho de um cdigo com endentao ( espaos no inicio da linhas mostrando onde inicia e termina um bloco de cdigo).

if $meu_numero >= 100 then

if $meu_numero=101 then

msgbox(0,"Ok","Meu numero est em 101")

EndIf if $meu_numero=102 then ExiteLoop

Endif

Endif

Agora o mesmo cdigo sem endentao( veja como fica difcil de entender onde comea e onde termina cada bloco de instruo).

if $meu_numero >= 100 then

if $meu_numero=101 then

msgbox(0,"Ok","Meu numero est em 101")

EndIf if $meu_numero=102 then

ExiteLoop

Endif

Endif

Exit, essa ultima instruo do exemplo apresentado faz com que o programa/script seja encerrado imediatamente e independentemente do local onde ele foi declarado, essa instruo tambm pode retornar cdigos numricos para o sistema operacional/outros programas avisando como o programa/script terminou. Geralmente retornamos um valor de "zero" para indicar que tudo terminou sem problemas.

Na programao difcil explicar certas instrues sem abordar outras, e isso torna o aprendizado mais difcil, por esse motivo deixei vrios outros aspectos da programao sem abord-los ou sem comentar, mas com a prtica e o estudo vocs iro encaixando as peas nos seus devidos lugares. Um bom exemplo do que estou tentando explicar o prprio computador que composto por vrios componentes fsicos (hardware) e lgicos (software) e a falta ou perda de um deles compromete ele como um todo, para que isso fique bem claro basta apenas deletarmos um nico arquivo do sistema operacional para que ele no carregue mais, ou menos ainda basta alterarmos um nico bit ( bit a menor unidade em um sistema computacional, ele pode assumir somente 2 estados que so 0 e 1) de um arquivo importante ou no setor de boot de um HD para que nada mais funcione como o esperado.

Resumo: O principal objetivo desse trecho do tutorial foi: Varivel = um nome que se d a um "endereo de memria" onde podemos armazenar dados, para serem utilizados posteriormente usando somente o nome atribudo.

Para usar uma varivel primeiro devemos "declar-la" usando a instruo "Local", depois damos um nome ( obedecendo as regras de sntese) e por fim "inicializ-las" com um dos 2 "tipos" os ( nmeros ou textos), depois de inicializada no devemos usar valores que no combinem com o "tipo" inicial ( ou seja uma varivel inicializada com nmeros deve ser usadas para armazenar somente nmeros ).

Um detalhe que eu ainda no tinha explicado e que talvez alguns se perguntem : Em qual parte do cdigo eu devo declarar essas variveis ?, como j mencionei o AutoIT bem flexvel em relao a isso, mas uma boa forma de programao seria declarar e inicializar no inicio do cdigo, e atravs de "linhas de comentrios", dar uma breve descrio para qual propsito ela ser utilizada, com isso quem ler o seu cdigo ir entender rapidamente a lgica utilizada.(dicas: Linhas de comentrio podem ser inseridas usando o smbolo ";"(ponto e virgula), tudo que estiver escrito depois de um ";"(ponto e virgula) ser tratado pelo pr-processador/compilador como sendo uma linha de comentrio e no uma instruo).

OperadoresAgora que j sabemos o que e como criar uma varivel, e que elas podem conter um nmero ou texto, iremos ver agora os "Operadores" que permitem atribuir/calcular/testar essas variveis.

Os operadores so divididos em 4 categorias ( atribuio, matemticos, comparao e lgicos).

OperadoresAtrabuies

=Atribuio. exemplo: $var = 5, atribui o valor da direita para uma varivel.

+=Adio e Atribuio. exemplo $var += 1, esse operador realiza 2 operaes de uma vez, esse tipo de operao seria equivalente a $var = ( $var + 1 )

-=Subtrao e Atribuio. exemplo $var -= 1, esse operador realiza 2 operaes de uma vez, esse tipo de operao seria equivalente a $var = ( $var - 1 )

*=Multiplicao e Atribuio. exemplo $var *= 1, esse operador realiza 2 operaes de uma vez, esse tipo de operao seria equivalente a $var = ( $var * 1 )

/=Diviso e Atribuio. exemplo $var /= 1, esse operador realiza 2 operaes de uma vez, esse tipo de operao seria equivalente a $var = ( $var / 1 )

&=Concatenao e Atribuio em variveis de texto. $var = "br", $var &= "branco" ( o resultado ser: $var ="brbranco")

OperadoresMatemticos

+Soma. exemplo: 10 + 20 = 30

-Subtrao. exemplo: 20 - 10 = 10

*Multiplicao. exemplo 20 * 10 = 200

/Diviso. exemplo 20 / 10 = 2

&Concatenao de textos. "br" & "branco" igual a "brbranco"

^Potenciao. exemplo 2 ^ 4 = 16

OperadoresComparao

=Igual, testa se 2 valores so iguais, pode ser usado tanto com nmeros quanto com textos, exemplo: 1 = 1 ( resposta sim), "BRbranco" = "brbranco" ( resposta no)

==Igual, testa se 2 valores so iguais, pode ser usado tanto com nmeros quanto com textos, exemplo: 1 == 2 ( resposta no), "brbranco" == "brbranco" ( resposta sim)

Diferente, testa se 2 valores so diferentes, exemplo 5 3 resposta sim

>Maior que, testa se o valor da esquerda maior que o da direita, exemplo: 5 > 4 (resposta sim), 4 > 5 (resposta no)

>=Maior ou igual, testa se o valor da esquerda maior ou igual que o da direita, exemplo: 6 >= 4 (resposta sim), 5 >= 5 (resposta sim)

= $var2 , resultado no.$var1 Save" selecione o local onde voc vai guardar esse arquivo e de um.

nome qualquer para ele (para esse exemplo eu dei o nome de exemplo1.au3, e salvei o arquivo na minha unidade "d:"), repare na imagem abaixo como o "titulo" da janela j reflete essa alterao.

Dica: Ao alterar qualquer coisa nesse script repare que no "titulo" da janela ir aparecer um "*" asterisco logo aps o nome do arquivo, isso indica que o script foi alterado.

O proximo passo ser escrever o cdigo, esse ter poucos linhas mas ser o suficiente para exeplicar muitos detalhes do editor, veja o cdigo:

Quando o leitor comear a escrever o cdigo acima a primeira coisa que ir notar o recurso de "Auto Completar" do editor, ou seja assim que digitar o primeiro caracter "#" ir aparecer um caixa de lista com uma serie de comanos veja a imagem abaixo:

Nesse lista voc pode percorre-la usando as teclas(seta cima, seta baixo, page down, page up, home, end) ou usando o mouse na barra lateral, para selecionar um item da listatecle "ENTER", caso voc no queira usar esse recurso tecle "ESC" para a janela "Auto Completar" seja fechada.

Outro recurso que facilita muito a leitura do cdigo, so as cores usado pelo editor para separar o que so comentrios ( verde ), palavras reservadas ( azul ), variveis (marrom ), operadores ( vermelho ), etc...

Mais um recurso til so os marcadores de regio, veja na imagem abaixo os quadrados com um sinal "-" dentro:

Esses marcadores ajudam a entender onde um bloco de cdigo inicia e termina ou seja um "While" termina em "WEnd" e um "If" termina em "Endif"

Dica: Quando voc no se lembrar a sntase de um comando ento basta selecionar a palavra desejada e teclar "F1", com isso ser aberto o help do AutoIT e na pgina referente a palavra selecionada.

Embora ainda tenha vrios outros detalhes, esses podero ser explorados/conhecidos com o tempo e uso do editor.

Com o cdigo escrito agora iremos salvar usando o menu "File->Save", com isso o cdigo estar pronto paraser rodado.Para executar-mosesse cdigo iremos usar o menu "Tools->Go" ou a tecla "F5", se tudo ocorreu corretamente ento teremos a seguinte janela:

A janelacom os botes (yes, no , cancel) a que foi criadana linha 11 e 12, mas o principal mesmo a ser observado como ficou a janela do editor ( dividida em duas partes), essa nova parte mostrado os comandos que foram executados pelo editor para gerar o nosso cdigo, ela muito til pois caso haja algum erro no script voc ir localizar rpidamente qual a linha que est causando o problema.

Editar esta pgina (se voc tiver permisso) |

Google Docs processador de texto, apresentaes e planilhas na web.