manual do autoit

32
Esse tutorial tem como objetivo explicar o princípio básico de programação, e para o estudo eu escolhi o AutoIT por ser de fácil entendimento e ter recursos suficientes para realizar uma grande quantidade de tarefas. Fazendo uma analogia com a vida real, uma linguagem de programação seria a forma de como nós escrevemos nossas palavras, e para que alguém entenda o que você escreveu existem várias regras que devem ser seguidas, tais como acentuação, pontos, virgulas, etc... . Já um programa/script é uma seqüência de "ordens" escrita em uma determinada linguagem que será executada pelo processador de seu pc, seguindo a mesma seqüência em que foi escrita ( lógica de programação). Para que o processador seja capaz de executar tal "ordens", entra em sena o "compilador", que é responsável por traduzir o que você escreveu para uma linguagem que o processador entenda. Como você pode perceber o computador embora pareça ser dotado de inteligência, na realidade ele apenas cumpre "ordens", então se uma "ordem" é bem elaborada tudo irá ocorrer como é de se esperar, caso contrário poderá gerar travamentos ou simplesmente ele não fará o esperado. O processo de criação 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 seleção da linguagem que possibilite fazer tal programa 3. A estruturação do código ( lógica de programação). 4. Escrita do código, usando a linguagem escolhida e obedecendo sua síntese (forma de escrita, regras, etc...). 5. Transformar o que foi escrito em um código que o cpu entenda (compilação) Como estamos em um fórum voltado para emulação, vou dar um exemplo dos passos acima usando esse tema ( emulação ). 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 não é possível. Então devo fazer um programa que faça essa tarefa sem eu ter que conectar um teclado. 2. A seleção da linguagem que possibilite fazer tal programa

Upload: misael-junio

Post on 31-Jul-2015

285 views

Category:

Documents


7 download

TRANSCRIPT

Page 1: Manual Do Autoit

  Esse tutorial tem como objetivo explicar o princípio básico de programação, e para o estudo eu escolhi o AutoIT por ser de fácil entendimento e ter recursos suficientes para realizar uma grande quantidade de tarefas.Fazendo uma analogia com a vida real, uma linguagem de programação seria a forma de como nós escrevemos nossas palavras, e para que alguém entenda o que você escreveu existem várias regras que devem ser seguidas, tais como acentuação, pontos, virgulas,  etc... .Já um programa/script é uma seqüência de "ordens" escrita em uma determinada linguagem que será executada pelo processador de seu pc, seguindo a mesma seqüência em que foi escrita ( lógica de programação). Para que o processador seja capaz de executar tal "ordens", entra em sena o "compilador", que é responsável por traduzir o que você escreveu para uma linguagem que o processador entenda.Como você pode perceber  o computador embora pareça ser dotado de inteligência, na realidade ele apenas cumpre "ordens", então se uma "ordem" é bem elaborada tudo irá ocorrer como é de se esperar, caso contrário poderá gerar travamentos ou simplesmente ele não fará o esperado.  O processo de criação 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 seleção da linguagem que possibilite fazer tal programa 3.    A estruturação do código ( lógica de programação). 4.    Escrita do código, usando a linguagem escolhida e obedecendo sua síntese

(forma de escrita, regras, etc...). 5.    Transformar o que foi escrito em um código que o cpu entenda (compilação)

 Como estamos em um fórum voltado para emulação, vou dar um exemplo dos passos acima usando esse tema ( emulação ).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 não é possível. Então devo fazer um programa que faça essa tarefa sem eu ter que conectar um teclado.

 2. A seleção da linguagem que possibilite fazer tal programa

Bom..., eu já sei oque preciso fazer, então agora preciso saber qual linguagem de programação é capaz de enviar tal teclas para que essa tela gerada pelo Mame seja fechada.

Há já sei..., o AutoIT tem função que é capaz de fazer isso, vou usá-la. 3. A estruturação do código ( lógica de programação).

Deixa eu ver..., vou fazer com que o front-end chame o meu programa ao invés do Mame, e o meu programa por sua vez irá chamar o Mame e ficar aguardando por um determinado período e depois enviar as teclas "OK", feito isso ele irá ficar aguardando até que o Mame seja fechado, e apos isso será encerrado também, fazendo com que o front-end fique ativo novamente.

 4.  Escrita do código, usando a linguagem escolhida e obedecendo sua síntese (forma de escrita, regras, etc...).

Page 2: Manual Do Autoit

Certo já sei o que tenho que fazer..., então vou procurar os comandos no help do AutoIT e começar a escrever o código usando essa "estrutura/lógica" elaborada e obedecendo a síntese dessa linguagem.

 5. Transformar o que foi escrito em um código que o cpu entenda (compilação)

Beleza tô quase lá..., agora que eu já escrevi o código falta chamar o "compilador" para traduzir o que eu escrevi para um código que o processador entenda e possa executar as "ordens" que eu escrevi (transformar o arquivo de texto em um arquivo executável ).

 Agora vamos entender certas características base, da maioria das

linguagens de programação.A memória  e o armazenamento  das informações/programas. Muitas pessoas confundem o armazenamento físico de informações/programas com a memória de trabalho ( quem nunca ouviu uma frase parecida com: Quantos programas/jogos ele tem na memória ? ), em qualquer sistema computacional existem duas áreas distintas ( armazenamento e memória).O armazenamento refere-se a qualquer dispositivo que possa armazenar informações/programas para que sejam usadas posteriormente ( hd, cd, dvd, diskete, eprom, etc...).Já a memória poderíamos fazer uma analogia como se fosse uma folha de papel para rascunhos, que depois de ser usada poderíamos jogar fora.Obviamente essas informações é uma forma bem simplíssima de demonstrar como as coisas realmente funcionam, mas como o objetivo é facilitar ao máximo o entendimento por enquanto essas informações são o suficiente para entendermos como os programas são armazenados e depois executados pelo processador.O processo de execução de um programa ocorre da seguinte maneira, ao chamarmos um programa o sistema operacional aloca um espaço na memória e carrega o programa nessa área e por fim da uma instrução e o "endereço de memória" para que o processador comece a executar o programa recém carregado, ao encerrar o programa o sistema operacional irá limpar essa área de memória. O "endereço de memória" está em negrito porque é um dos princípios básicos que devemos entender, são poucos os programas que não usam uma área de memória para guardar dados enquanto está em execução, um exemplo bem clássico  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 "endereço de memória" para guardar o valor do número atual para que depois possamos incrementar e por fim comparar se ele já alcançou o valor desejado.Veja abaixo um trecho de código 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 Exit

Não se preocupe por não conhecer algumas instruções mostradas nesse exemplo, elas serão explicadas no decorrer do tutorial, o que interessa no momento são os "endereço de memória", que na programação são chamados de "variáveis". As "variáveis" são responsáveis por guardar as informações que iremos utilizar em nossos programas, e para utilizar o conteúdo que elas armazenam basta chamá-las

Page 3: Manual Do Autoit

pelo nome. ( no exemplo acima criamos uma variável de nome "$meu_numero" que armazena um valor de 1) . Recapitulando uma "variável" nada mais é que um nome que damos a um "endereço de memória".  

VariáveisPara usufruirmos das "variáveis", certas regras devem ser obedecidas ( cada linguagem de programação tem as suas regras próprias, mas a muitas são bens parecidas ), o AutoIT é bem flexivel em relação a isso ( bem diferente de linguagens como c/c++ ), nesse tutorial irei citar apenas algumas.Dê nomes sugestivos para as suas variáveis, nunca use espaços entre os nomes (exe: $meu numero, errado), use o underline "_" ou letras maiúsculas para separar um nome composto (exe: $meu_numero ou $MeuNumero, correto ). Uma particularidade em relação aos nomes dados as variáveis no AutoIT é que todas devem começar com um "$" (cifrão) As "variáveis" 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 são "variáveis com valores numéricos" e "variáveis que irão conter textos/caracteres (as chamadas de strings)".(Obs: linguagens como c/c++ são muito criteriosas a respeitos de tipos de variáveis) Além de uma "variável" 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 "váriavel" antes dela ser usada ( dica: o AutoIT tem opções que garantem que isso seja feito, ou seja na hora de compilar ele poderá te avisar sobre esse fato). As instruções usadas para "declarar" uma variável são: Local, Dim, Global, Const, cada uma dessas declarações será explicada no momento oportuno.Usando a declaração "Local" estamos dizendo ao compilador que a variável só deve ser vista (acessada) pelo "trecho de código (função)" onde ela foi "declarada", isso se deve ao fato de um programa poder ser dividido em varias partes (funções e ou proceduras), então usamos essa declaração para proteger a variável de um acesso indevido por parte de outras funções existentes no programa, e com isso também permite que tenhamos mais de uma variável com o mesmo nome dentro de um mesmo programa, esse tipo de declaração é chamada de "escopo" ou "visibilidade de uma variável". Esse tipo de declaração é o preferido a ser usado, isso porque o programa irá consumir menos memória, porque uma variável declarada como "Local" só irá ocupar espaço de memória quando ela for utilizada, e esse espaço será liberado automaticamente assim que a variável não for mais necessária. Ao contrário da declaração "Local" temos a declaração" "Global", que deve ser usada com muita cautela, porque com essa "declaração" a variável só será liberada quando o programa for encerrado, e com isso irá ocupar por um período maior mais quantidade de memória, fora outros conflitos que elas podem gera. Antes de explicar o código acima linha por linha, uma boa forma de programação é sempre inicializar as  as variáveis, ou seja dar um valor inicial a cada uma delas, no AutoIT isso não é obrigatório mas é uma boa prática de programação e pode evitar muitas dores de cabeça. 

Análise do código acima:Local , informa ao compilador que a variável declarada só deve existir enquanto o trecho do código em que ela foi declarada estiver sendo executado. 

Page 4: Manual Do Autoit

$meu_numero, esse é o nome que foi dado (variável) a um "endereço de memória" onde iremos usar para guardar certas informações, esse nome deve ser composto pelo caractere inicial "$" e seguido por mais letras, números e ou caractere underline "_", não pode conter espaços em branco ( exe: meu numero), não pode conter mais que uma variável, função com o mesmo nome dentro do mesmo trecho de código. $meu_numero=1, nessa linha estamos "inicializando" a variável com um valor numérico de "1" e com isso o compilador irá saber que essa variável irá trabalhar com valores numéricos, o outro valor possivel para variáveis do AutoIT são os "textos" (strings), variáveis do tipo string são "inicializadas" usando o valor entre aspas( exe: $meu_numero="1"), depois de inicializada uma variável deve ser usada para manipular dados somente do mesmo tipo, não devemos atribuir "textos"(strings) , a uma variável que foi inicializada como sendo numérica e vice e versa, (Obs: O AutoIT até permite que seja feito isso em certas ocasiões, mas isso não é uma boa prática de programação, e pode trazer sérios bugs ao seu programa). while $meu_numero ,  a "instrução" "while" será estuda mais a frente ( instruções de loop), a tradução dessa linha seria "faça enquanto a variável $meu_numero for diferente de zero"$meu_numero+=1, essa linha é a responsável por "incrementar" o valor da variável "$meu_numero", os símbolos "+=" é chamados de "operadores", a tradução dessa linha seria "a variável $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 instrução "if" será estuda mais frente ( instruções de decisão),  a tradução dessa linha seria: "Si a variável $meu_numero for (>)maior ou (=)igual a 100 (then)então execute a próxima linha".  ExitLoop, essa instrução permite sair de qualquer bloco de loop criado com as instruções ( while, for, do ),  se essa instrução não fosse utilizada o bloco de código "while até wend" seria executado até que a váriável $meu_numero não 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 instruções são complementos das instruções "If" e "While" elas são obrigatórias e servem para demarcar/organizar o código para que fique fácil de entender onde uma instrução começa e termina, juntando isso e mais a "endentação" criamos um código que quando outras pessoas forem ler entendam com mais clareza a lógica utilizada. ( dica: A endentação são os espaços utilizados no inicio do parágrafo para que o código digitado em uma determinada linha fique bem claro que pertençam a um determinado bloco de instrução, isso porque podemos ter por exemplo várias instruções "If" uma dentro da outra.) Trecho de um código com endentação ( espaços no inicio da linhas mostrando onde inicia e termina um bloco de código).

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

Page 5: Manual Do Autoit

 Agora o mesmo código sem endentação( veja como fica difícil de entender onde começa e onde termina cada bloco de instrução).

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 instrução do exemplo apresentado faz com que o programa/script seja encerrado imediatamente e independentemente do local onde ele foi declarado, essa instrução também pode retornar códigos numéricos 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 programação é difícil explicar certas instruções sem abordar outras, e isso torna o aprendizado mais difícil, por esse motivo deixei vários outros aspectos da programação sem abordá-los ou sem comentar, mas com a prática e o estudo vocês irão encaixando as peças nos seus devidos lugares. Um bom exemplo do que estou tentando explicar é o próprio computador que é composto por vários componentes físicos (hardware) e lógicos (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 não 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 são 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:

Variável = um nome que se dá a um "endereço de memória" onde podemos armazenar dados, para serem utilizados posteriormente usando somente o nome atribuído.

Para usar uma variável primeiro devemos "declará-la" usando a instrução "Local", depois damos um nome ( obedecendo as regras de síntese) e por fim "inicializá-las" com um dos 2 "tipos" os ( números ou textos), depois de inicializada não devemos usar valores que não combinem com o "tipo" inicial ( ou seja uma variável inicializada com números deve ser usadas para armazenar somente números ).

  Um detalhe que eu ainda não tinha explicado e que talvez alguns se

perguntem é: Em qual parte do código eu devo declarar essas variáveis ?, como já mencionei o AutoIT é bem flexível em relação a isso, mas uma boa forma de programação seria declarar e inicializar no inicio do código, e através de "linhas de comentários", dar uma breve descrição para qual propósito ela será utilizada, com isso quem ler o seu código irá entender rapidamente a lógica utilizada.(dicas: Linhas de comentário podem ser inseridas usando o símbolo ";"(ponto e virgula), tudo que estiver escrito depois de um ";"(ponto e virgula) será tratado pelo pré-processador/compilador como sendo uma linha de comentário e não uma instrução).

 

Operadores

Page 6: Manual Do Autoit

Agora que já sabemos o que é e como criar uma variável, e que elas podem conter um número ou texto, iremos ver agora os "Operadores" que permitem atribuir/calcular/testar essas variáveis.Os operadores são divididos em 4 categorias ( atribuição, matemáticos,  comparação e lógicos).

Operadores Atrabuições

Atribuição. exemplo:  $var = 5 , atribui o valor da direita para uma variável.

+= 

Adição e Atribuição. exemplo $var += 1, esse operador realiza 2 operações de uma vez, esse tipo de operação seria equivalente a  $var = ( $var + 1 )

-= 

Subtração e Atribuição. exemplo $var -= 1, esse operador realiza 2 operações de uma vez, esse tipo de operação seria equivalente a $var = ( $var - 1 )

*= 

Multiplicação e Atribuição.  exemplo $var *= 1, esse operador realiza 2 operações de uma vez, esse tipo de operação seria equivalente a $var = ( $var * 1 )

/= 

Divisão e Atribuição.  exemplo $var /= 1, esse operador realiza 2 operações de uma vez, esse tipo de operação seria equivalente a $var = ( $var / 1 )

&= 

Concatenação e Atribuição em variáveis de texto.  $var = "br", $var &= "branco"    ( o resultado será: $var ="brbranco")

Operadores Matemáticos

+ Soma. exemplo: 10 + 20 = 30

- Subtração. exemplo:  20 - 10 = 10

* Multiplicação. exemplo 20 * 10 = 200

/ Divisão. exemplo 20 / 10 = 2

& Concatenação de textos. "br" & "branco" é igual a "brbranco"

^ Potenciação. exemplo 2 ^ 4 = 16

Operadores Comparação

=Igual, testa se 2 valores são iguais, pode ser usado tanto com números quanto com textos, exemplo: 1 = 1 ( resposta sim),  "BRbranco" = "brbranco" ( resposta não)

==Igual, testa se 2 valores são iguais, pode ser usado tanto com números quanto com textos, exemplo: 1 == 2  ( resposta não), "brbranco" == "brbranco" ( resposta sim)

<> Diferente, testa se 2 valores são diferentes, exemplo 5 <> 3  resposta sim

Page 7: Manual Do Autoit

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

>= 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)

< Menor que, testa se o valor da esquerda é menor que o da direita, exemplo: 4 < 5 (resposta sim), 5 < 3 (resposta não)

<=Menor ou igual, testa se o valor da esquerda é menor ou igual que o da direita, exemplo: 6 <= 10 (resposta sim), 10 <= 6 (resposta não)

Operadores

 Lógicos

AND Operação lágica E. exemplo: If $var = 5 AND $var2 > 6 Then  (se $var for igual a 5 "E" $var2 for maior que 6)

OR Operação lágica OU. exemplo: If $var = 5 OR $var2 > 6 Then (se $var for igual a 5 "OU" $var2 for maior que 6)

NOT Operação lágica NAO. exemplo: NOT 1 ( NAO 1 é igual a zero),  NOT 0 ( NAO 0 é igual a 1)

Caso não tenha entendido a tabela acima não se preocupe, com o decorrer do tutorial será mostra como e onde podem ser usados.  O primeiro operador que veremos é o de atribuição "=", ele é usado para atribuir um valor a uma variável, exemplo: $var = 5, $var = "branco", usamos esse operador para inicializar uma variável ou para alterarmos um valor já existente nela. Observação: no AutoIT esse operador também serve para fazer comparações, e isso pode confundir o programador iniciante, veja o exemplo abaixo:if $var = 5 then     msgbox(0,"OK", "A variável $var é igual a 5")endifVeja que no código acima o operador "=" está sendo usado para fazer uma "comparação" entre o valor que está armazenado na variável $var e o numero 5, para não haver confusão você pode se habituar a usar somente o operador "==" para fazer as "comparações", e o "=" para as atribuições. Os operadores "matemáticos" são de fácil compreensão, ou seja eles "somam/subtrai/dividem/potencializa" o valor da esquerda pelo valor da direita, sendo que esses valores podem ser fixos exemplo : 5 + 5, ou podem estar armazenados em uma variável exemplo: $var1 + $var2. Uma coisa a ser observada é que os operadores na programação tem uma "precedência", ou seja em uma conta que contenha mais de um operador e de tipos diferentes, os operadores serão executados na seguinte ordem "potência / divisão / multiplicação / soma / bubtração", veja o exemplo abaixo:4 + 6 / 2 = ?, se pegarmos uma calculadora é fizermos essa conta você irá reparar que o resultado é "5", pois ela irá fazer a operação da esquerda para a direita e usando os operadores na mesma ordem em que foram informados, mas essa mesma conta sendo feita via programação o resultado será "7". 

Page 8: Manual Do Autoit

Nesse ponto é que entra a "precedência" dos operadores na programação, para o AutoIT e todas as outras linguagens que eu conheço o operador "/" que é o de divisão tem precedência ao operador "+", e esse foi o motivo do exemplo acima dar um resultado de "7" na programação e "5" na calculadora, para evitar que contas como essa tenham um valor diferente do esperado devemos usar os símbolos  abre parênteses "(" e   fecha parênteses ")", para separar uma operação de outra, veja o mesmo exemplo acima usando os parênteses: (4 + 6) / 2 = 5 , nesse exemplo primeiro é somado os valores 4+6 e depois dividido por 2, ou seja 4+6 = 10 / 2 = 54 + (6 / 2) = 7, nesse exemplo primeiro é dividido o valor de 6 por 2 e o resultado é somado ao 4, ou seja (6 / 2)  = 3 + 4 = 7Dica: Fique atento ao realizar contas como essas, procure sempre usar os símbolos "( )" para separar as operações, e lembre-se o computador não tem inteligência alguma, quem ensina ele a fazer alguma coisa é o programador, então se ele for ensinado errado, errado ele fará ( caso não antes trave antes hehehehe). Muita gente reclama do windows ( até certo ponto eles tem razão ), mas a maioria das travas ocorridas nesse sistema operacional é devido a programas mal escritos. Voltando aos operadores de "atribuição" temos um grupo que ajuda a simplificar ó código, que são "+=, -=, *=, /= e &=", isso por que eles fazem duas operações ao mesmo tempo, veja o exemplo:$var = 1$var = $var + 4No exemplo acima primeiro inicializamos a variável $var com um valor numérico igual a 1, e na segunda linha adicionamos mais um valor de 4, para que $var fique com o valor final de 5.Agora veja como ficaria o mesmo exemplo usando o operador "+=" que é "soma mais atribuição"$var = 1$var += 4 A mesmo método pode ser usado para os outros operadores matemáticos com atribuição, o único que não é matemático é o operador "&=" esse pode ser usado para "juntar/concatenar" duas variáveis de texto, exemplo:$var = "João_"$var &=  "Alves"O resultado desse código será que a variável $var ficará com o seguinte conteúdo: "João_Alves", se não usássemos esse operador o código deveria ser escrito assim:$var = "João_"$var = $var & "Alves"  Os operadores de comparação também são de fácil compreensão, eles são usados para verificar se o valor da esquerda é ( maior >, menor <, igual ==, diferente <>, maior ou igual >=, menor ou igual <= ) que o valor da direita, essa operação pode ser feita tanto com números fixos quanto com variáveis numéricas, esses operadores são muito usados com a instrução "If" que estudaremos logo a seguir, veja os resultados obtidos com as comparações:Sendo $var1 = 5 e $var2 = 10 temos os seguintes resultados:$var1 > $var2 , resultado é não.$var1 < $var2 , resultado é sim.$var1 == $var2 , resultado é não.$var1 <> $var2 , resultado é sim.$var1 >= $var2 , resultado é não.

Page 9: Manual Do Autoit

$var1 <= $var2 , resultado é sim. E o último grupo de operadores são os lógicos, esses operadores atuam como comparadores tanto para números quanto para textos (strings), veja os resultados das comparações:Sendo $var1 = 0 e $var2 = 1 temos:$var1 and $var2 , resultado falso$var1 or $var2 , resultado verdadeiro Sendo $var1 = "João" e  $var2 = "Maria" temos:$var1 and $var2 , resultado falso$var1 or $var2 , resultado verdadeiro (dependendo de outra comparação.)  

Instruções condicionaisAgora começaremos a ver um grupo de instruções que nos permitem dar lógica ao programa, ou seja tomar decisões dependendo de um resultado, criar blocos de código que podem ser executados várias vezes até que uma condição seja satisfeita.  Instrução If...ElseIf...Else...EndIf A primeira instrução a ser estudada será o "If...ElseIf...Else...EndIf" que é uma instrução de teste de condição, o "if" se traduzido para o português seria equivalente á "Se", eo "Then" seria "Então", o "Else" seria "de outra forma" e o "endIf" serve apenas para finalizar o bloco de código, para que fique bem legível e de fácil entendimento veja abaixo um exemplo:if 5 == 10 then  ; Se 5 for igual a 10 então execute o código da próxima linha     instrução a ser executadaelseif 5 == 5 then ; ou se 5 for igual a 5 então execute o código abaixo    instrução a ser executadaelse ; Se nenhuma das opções estiverem corretas for então execute o código abaixo    instrução a ser executadaendif ; fecha a instrução ifNo AutoiT não é informado até quantos "ElseIF" podem ser usados dentro de uma estrutura "if  endIf", mas caso seja necessário mais que um, então é hora de revisar o código e usar outra instrução( nesse caso a instrução Switch ou Select). O código acima está mostrando a forma mais completa da instrução "if" ou seja independente do resultado um trecho de código ou outro é executado, a instrução "if" também pode ser usada de uma forma mais simplificada, para analisar somente  uma ou outras condições,  veja:if 5 = 10 then     instrução a ser executadaelseif 5 == 5 then    instrução a ser executadaendif ou if 5 = 10 then     instrução a ser executadaendif

Page 10: Manual Do Autoit

 ou ainda if 5 = 10 then instrução a ser executada Repare nesse último exemplo a forma mais reduzida, ou seja sem a necessidade do "EndIf" Para demonstrar o uso do "If" veja um exemplo mais completo abaixo, o código a seguir irá mostrar uma caixa de texto para o usuário, onde ele deve informar a idade, e através das instruções "if" será verificado e mostrado uma mensagem correspondente ao valor informado. local $idade$idade = InputBox("Pergunta","Por favor informe quantos anos você tem:")

;testa o valor digitado na caixa de texto, caso nada tenha sido digitado; mostra a mensagem e saiIf $idade == "" Then    MsgBox(0,"Erro", "Como você não informou a idade, então o programa será encerrado")    ExitEndIf

;testa se o valor digitado é um numero;caso não seja exibe a menssagem e saiIf Number($idade) == 0 Then    MsgBox(0,"Erro", "Você deve informar um numero valido")    ExitEndIf

;a sequencia de ifs abaixo servirão para testar e mostrar;a mensagem conforme o valor informadoIf Number($idade) <= 12 Then    MsgBox(0,"OK","Nossa você ainda é uma criança...")    ExitEndIf

If Number($idade) >= 13 And Number($idade) <= 20 Then    MsgBox(0,"OK", "Legal você é um adolecente...")    ExitEndIf

If Number($idade) >= 21 And Number($idade) <= 40 Then    MsgBox(0,"OK", "É chegou a hora de pensar oque fazer da vida")    ExitEndIf

If Number($idade) >= 41 And Number($idade) <= 60 Then    MsgBox(0,"OK", "Poxa o tempo passa rápido né?")    ExitEndIf

If Number($idade) >= 61 And Number($idade) <= 65 Then    MsgBox(0,"OK", "Tá na hora de pensar na aposentadoria.")

Page 11: Manual Do Autoit

ElseIf Number($idade) >= 66 And Number($idade) <= 80 Then    MsgBox(0,"OK","Puxa que saude, em amigão") Else    MsgBox(0,"OK","KaraKa tú vai ficar pra semente...")EndIf

Exit ;fim do scriptNesse exemplo foi usado a função "Number( expressão)" que retorna o valor numérico da expressão passada e caso a "expressão" não contenha numeros então ela retorna o valor de zero, esse recurso foi usado porque a variável $idade é uma variável do tipo string (texto), e foi necessário usar uma variável do tipo string porque a função "InputBox" retorna uma string.   

Instrução  Switch...Case...EndSwitch A instrução "Switch" trabalha de forma parecida com o  "if"  e é ideal para analisar um grande número de possibilidades, veja como fica o exemplo acima usando o "Switch" ao invés do "If" local $idade$idade = InputBox("Pergunta","Por favor informe quantos anos você tem:")

;testa o valor digitado na caixa de texto, caso nada tenha sido digitado; mostra a mensagem e saiIf $idade == "" Then    MsgBox(0,"Erro", "Como você não informou a idade, então o programa será encerrado")    ExitEndIf

;testa se o valor digitado é um numero;caso não seja exibe a mensagem e saiIf Number($idade) == 0 Then    MsgBox(0,"Erro", "Você deve informar um numero valido")    ExitEndIf ; testa o valor informado, e mostra a mensagem correspondenteSwitch $idade    case 0 to 12        MsgBox(0,"OK","Nossa você ainda é uma criança...")    case 13 to 20        MsgBox(0,"OK", "Legal você é um adolecente...")    case 21 to 40        MsgBox(0,"OK", "É chegou a hora de pensar oque fazer da vida")    case 41 to 60        MsgBox(0,"OK", "Poxa o tempo passa rápido né?")    case 61 to 65        MsgBox(0,"OK", "Tá na hora de pensar na aposentadoria.")    case 66 to 80        MsgBox(0,"OK","Puxa que saude, em amigão")    case else

Page 12: Manual Do Autoit

        MsgBox(0,"OK","KaraKa tú vai ficar pra semente...")EndSwitch

Exit ;fim do scriptVeja como esse código ficou bem compacto e de melhor entendimento, e faz exatamente o mesmo que o anterior.  

Instrução Select...Case...EndSelect A instrução "Select...Case...EndSelect" também trabalha de forma parecida com "If" e "Switch", vamos ver como fica o mesmo exemplo usando ele.local $idade$idade = InputBox("Pergunta","Por favor informe quantos anos você tem:")

;testa o valor digitado na caixa de texto, caso nada tenha sido digitado; mostra a mensagem e saiIf $idade == "" Then    MsgBox(0,"Erro", "Como você não informou a idade, então o programa será encerrado")    ExitEndIf

;testa se o valor digitado é um numero;caso não seja exibe a menssagem e saiIf Number($idade) == 0 Then    MsgBox(0,"Erro", "Você deve informar um numero valido")    ExitEndIf

;a sequencia de ifs abaixo servirão para testar e mostrar;a mensagem conforme o valor informadoIf Number($idade) <= 12 Then    MsgBox(0,"OK","Nossa você ainda é uma criança...")    ExitEndIf  select    case Number($idade) >= 13 And Number($idade) <= 20        MsgBox(0,"OK", "Legal você é um adolecente...")    case Number($idade) >= 21 And Number($idade) <= 40        MsgBox(0,"OK", "É chegou a hora de pensar oque fazer da vida")    case Number($idade) >= 41 And Number($idade) <= 60        MsgBox(0,"OK", "Poxa o tempo passa rápido né?")    case Number($idade) >= 61 And Number($idade) <= 65        MsgBox(0,"OK", "Tá na hora de pensar na aposentadoria.")    case Number($idade) >= 66 And Number($idade) <= 80        MsgBox(0,"OK","Puxa que saude, em amigão")    case else        MsgBox(0,"OK","KaraKa tú vai ficar pra semente...")EndSelect

Exit ;fim do script

Page 13: Manual Do Autoit

Veja como esse código também ficou mais compacto e de melhor entendimento, e faz exatamente o mesmo que os anteriores. Como você pode observar existem várias formas de se escrever o mesmo código, a diferença só estará relacionada ao desempenho e a organização do código para uma leitura e localização de bugs.  

Instruções de laço (looping) 

Instrução For...To...Step...Next A primeira instrução de looping a ser estudada  será o "for", essa instrução permite repetir um bloco de código até que uma determinada condição seja atingida, veja o exemplo:local $meu_numero = 0 ; declara  e inicializa a variável $meu_numero com o valor de 0 (zero)  for $i = 1 to 100    $meu_numero += 1nextno final desse processamento a variável $meu_numero terá um valor de 100.No exemplo acima a instrução "for" irá inicializar a variável "$i" e incrementá-la até que ela tenha um valor igual á 100, nesse processo todas as instruções/comandos que estiverem entre o "for" e o "next" serão executadas, no nosso exemplo o comando "$meu_numero += 1" será executado 100 vezes, ou seja no final do processo a variável $meu_numero terá um valor de 100. O "for" ainda suporta uma segunda opção que permite controlar os passos de incrementação, o parâmetro é "Step", veja o exemplo:local $meu_numero = 0 ; declara  e inicializa a variável $meu_numero com o valor de 0 (zero)  for $i = 1 to 100 step 2    $meu_numero += 1nextno final desse processamento a variável $meu_numero terá um valor de 50.No exemplo acima a variável "$i" será incrementada por 2 até que ela tenha o valor de 100, como ela será incrementa de 2 em 2, então o comando dentro do "laço/looping" será executado 50 vezes. E por fim o "for" ainda pode fazer o mesmo processo de forma invertida ou seja ao invés de incrementar a variável ele pode decrementá-la, veja:local $meu_numero = 0 ; declara  e inicializa a variável $meu_numero com o valor de 0 (zero)  for $i = 100 to 1 step -1    $meu_numero += 1nextNesse exemplo a variável "$i" será inicializada como valor de 100 e será decrementada até que tenha o valor de 1, o parâmetro "Step" irá funcionar da mesma forma que o exemplo anterior, só que ele deve ter um sinal de "subtração"

Page 14: Manual Do Autoit

antes do número de decrementação que no nosso exemplo é o "-1", ou também poderia ser "-2" ou qualquer outro valor desejado. A instrução "for" é muito usada para percorrer listas, e um tipo diferente de variável que ainda não foi explicada, que são as "arrays", esse tipo de variável contém um índice numérico que é facilmente percorrido usando o "for". Dica: Ao usar a instrução "for" ou outras instruções de "laço/looping", você deverá ter certeza que a condição de parada desse "looping" seja alcançada, caso contrário o programa irá  ficar em  um "loopimg" infinito e com isso poderá travar o pc. veja um exemplo disso:local $meu_numero = 0 ; declara  e inicializa a variável $meu_numero com o valor de 0 (zero)  for $i = 1 to 100    $meu_numero += 1    $i=1nextveja que propositalmente eu estou alterando o valor da variável '$i'  para 1, com isso o "looping" será infinito.   

Instrução While...WEnd A instrução "While ... WEnd" , executa um looping enquanto uma expressão for verdadeira, veja o exemplo:local $meu_numero = 0  while $meu_numero <= 100        $meu_numero += 1wendo looping será executado enquanto a variável $meu_numero for menor ou igual  á 100 O código acima também poderia ser escrito da seguinte forma:local $meu_numero = 0  while  1    if  $meu_numero >= 100   then        ExitLoop    endif     $meu_numero += 1wendNesse exemplo o ponto de parada do looping é feito com  a ajuda da instrução "if", ou seja a instrução "if" irá testar o valor da variável $meu_numero e quando ela tiver um valor maior ou igual a 100, então o comando "ExitLoop" será executado fazendo com que o looping seja encerrado.  Como você pode notar o looping só é executado "quando e enquanto" a expressão informada for verdadeira, e repare também que a expressão poder ser composta como no primeiro exemplo ou pode ser simples como no segundo, o que importa mesmo para essa instrução é que a expressão tenha um valor diferente de zero. 

Page 15: Manual Do Autoit

Dica: para o AutoIT e outras linguagens de programação um valor só é verdadeiro quando ele é diferente de zero, com  isso até um valor negativo ( -1, -2, etc...) são considerados como verdadeiros. Veja que nesse segundo exemplo eu usei o número "1"  para ter uma expressão com um valor verdadeiro, caso eu coloca-se o número "0" o looping não seria executado. No AutoIT e outras linguagens temos 2 "palavras reservadas" que representam os valores verdadeiro( TRUE ) e falso ( FALSE ), com isso a linha do exemplo acima poderia ser escrita  da seguinte forma: While true ; a tradução dessa linha é: "faça enquanto for verdadeiro"   

Instrução Do...Until Essa instrução é muito parecida com a anterior a diferença principal é que o "While... WEnd" só irá executar o código dentro dentro dele caso a expressão seja verdadeira, já o "Do...Until" irá executar irá executar o código dentro dele pelo menos uma vez, isso porque a expressão a ser analisada irá ficar no final do looping e não no início como acontece com o "While...Wend", veja o exemplo:local $meu_numero = 0  Do     $meu_numero += 1Until $meu_numero >=100Nesse exemplo o comando "$meu_numero += 1" é executado independente de qualquer coisa, e por fim é testado se a expressão "$meu_numero é maior ou igual a 100", e caso for verdadeiro então o looping é encerrado. A tradução desse código seria : "Faça $meu_numero += 1 até que $meu_numero seja maior ou igual á 100" Para o "Do..Until" pode ser aplicado os mesmos  métodos que foram usados nos exemplos do "While...Wend"    Essas são as principais instruções de condição e looping, embora existam outras elas só serão explicadas em momentos oportunos para facilitar o aprendizado.Para fixar as instruções mostradas até agora, irei expor um problema, depois irei fazer uma análise de que como posso resolve-lo, e por fim como codificar o que foi analizado, como mencionei no inicio do tutorial irei expor um problema voltado a emulação. 

Problema:Eu uso o front-end chamado advmenu, e ele permite que eu chame qualquer emulador através de uma linha de comando, e para o emulador chamado eu posso passar o nome da rom que eu desejo carregar.O emulador que eu quero usar com o advmenu se chama "zinc.exe", o problema é que o emulador só carrega um jogo se eu passar um número, e o advmenu irá passar para ele o nome da rom. 

Análise de como resolver esse problema:

Page 16: Manual Do Autoit

Já que o advmenu só é capaz de passar o nome da rom, então ao invés de fazer o advmenu chamar o emulador diretamente, vou fazer com que ele chame  meu script, que por sua vez deverá pegar o nome da rom passada pelo advmenu e converter esse nome em um número correspondente ao jogo, e por fim fazer com que o script chame o "zinc.exe" passando para ele esse número, fora isso meu script terá que ficar esperando até que eu acabe de jogar e feche o emulador, caso eu não faça isso, assim que o script acabar de executar a ultima linha e fechar, o advmenu iria pensar que eu já fechei o emulador e iria sobrepor  a janela do emulador com a dele. ;para nivel de organização vou declarar e inicializar  todas as minhas variáveis no inicio do script local $numero_do_jogo = 0 ;agora irei verificar se o advmenu me passou o nome da rom;para isso irei usar uma variável especial ( $cmdline) do AutoIT que retorna quantos e quais parâmetros foram passados pelo advmenu;e em caso de erro irei mostrar uma mensagem avisando, e encerrar o script.if $cmdline[0] == 1 then    msgbox(0,"Erro", "O advmenu não passou o nome da rom a ser carregada")    Exitendif ;agora que eu já sei que o advmenu me passou algum parâmetro;então vou pegá-lo e testar para ver se é um nome válido;caso o nome seja válido então irei usar a variável $numero_do_jogo, para guardar o número correspondente ao jogo.select $cmdline[1]    case "starglad"        $numero_do_jogo = 1    case "sfex"        $numero_do_jogo = 2    case "sfexp"        $numero_do_jogo = 5    case else        $numero_do_jogo = 0endselect     ;depois desse bloco que verifica se o nome da rom é igual a um dos três nomes informados nas instruções "case";chega a hora de verificar se a variável $numero_do_jogo está com um valor diferente de zero;caso ela tenha o valor de zero, isso indica que o nome passado não existe no meu script.if $numero_do_jogo == 0 then    msgbox(0,"Erro","O nome passado pelo advmenu não é conhecido pelo script")    Exitendif ;agora que eu já o número correto do jogo, chega a hora de chamar o emulador;para isso vou usar uma função do AutoIT que  além de chamar, também irá fazer o script ficar em;estado de espera até que o emulador seja encerradoShellExecuteWait("zinc.exe", String($numero_do_jogo), @ScriptDir, "open", @SW_HIDE) 

Page 17: Manual Do Autoit

;se a função acima conseguiu chamar o "zinc" com sucesso, o script estará num estado de pausa;até que o emulador seja encerrado, e quando isso ocorrer os próximos comandos abaixo serão executados pelo script.msgbox(0,"OK", "O emulador foi encerrado, clique em OK para retornar para o advmenu")Exit ; fim do script   Para que o script acima seja realmente funcional, alguns detalhes devem ser observados, como por exemplo onde ele deverá ficar, em que pasta o "zinc.exe" está, se ele está configurado corretamente, etc..., todos esses detalhes podem ser codificados no script para garantir que caso algo não esteja no lugar o script seja capaz de localizar e avisar sobre o erro, lembre-se o pc só faz o que mandam ele fazer. Nesse pequeno script foi usado uma variável especial chamada "$cmdline" essa variável é criada e mantida pelo AutoIT, e a única coisa que podemos fazer com ela é ler o seu valor.No script também foi usado uma "função" (as funções será o próximo tema a ser explicado), e nessa função foram usadas duas "MACROS" (@ScriptDir, @SW_HIDE) a primeira contém o caminho completo de onde o script foi chamado por exemplo (c:\meus_scripts), e a segunda contém um número que força uma janela na seja mostrada(essa macro foi usada porque o "zinc" ao ser chamado abre um janela de "prompt de comando" e como eu não quero que essa janela seja visível,  então mando que ela não seja mostrada).Esse comandos extras que foram usados podem ser consultados no "Help fo AutoIT", lá o leitor poderá ver a lista completa.   

Funções.  Uma função é um bloco de código que iremos escrever uma única vês e dar um nome, depois da função ser criada podemos usar ela em qualquer parte de nosso script chamando ela pelo nome.As função permitem deixar o código fácil de se entender, atualizar e localizar erros, as funções se fazem necessárias do momento que você tiver que escrever blocos de código repetidos em várias partes do script, veja um exemplo disso:;no inicio do script vou verificar se o emulador "zinc.exe" está aberto if ProcessExist("zinc.exe") then    ProcessClose("zinc.exe")    msgbox(0,"OK", O emulador zinc.exe, estava aberto e foi fechado")endif ; aqui seria escrito outras tarefas a serem  realizadas ; e agora eu preciso verificar se outro emulador está aberto, "mame.exe"if ProcessExist("mame.exe") then    ProcessClose("mame.exe")    msgbox(0,"OK", O emulador mame.exe, estava aberto e foi fechado")endif ;aqui outras tarefas a serem realizadas

Page 18: Manual Do Autoit

No exemplo acima eu tive que repetir 2 vezes um mesmo código sendo que só alterei o o nome do emulador, e teria que repetir esse mesmo bloco de código outras vezes para verificar se outros emuladores estão abertos, para casos como esse, o recomendado seria criar uma função que fizesse esse trabalho de uma forma mais prática, veja: ;veja com a função criada basta apenas eu passar o nome para a função ;e ela se encarregará do restoFechaEmulador("zinc.exe") ; aqui seria escrito outras tarefas a serem  realizadas FechaEmulador("mame.exe") ;aqui outras tarefas a serem realizadas ;essa é a função criada para facilitar/diminuir o código do exemplo anteriorFunc Fecha_Emulador( $nome)    if ProcessExist($nome) then        ProcessClose($nome)        msgbox(0,"OK", O emulador " & $nome  & ", estava aberto e foi fechado")    endifEndFunc Veja como no exemplo acima como código ficou bem mais fácil para realizar a manutenção/alteração, isso porque vamos supor que eu não queira mais que a mensagem seja mostrada, então basta eu alterar/deletar uma única linha da função e isso já estará resolvido, agora no primeiro exemplo eu teria que alterar todas a linhas onde tivesse os "msgbox".  

Variáveis Constantes e ArrayAntes de explicar como as funções trabalham irei explicar sobre mais dois tipos de variáveis que ainda não foram vistas (variáveis constantes e variáveis array) Constantes ( const )Uma variável constante é declarada com a palavra reservada "Const", e uma variável declarada dessa forma não pode ter o seu valor alterado, ou seja ela deve ser usada somente para a leitura de seu valor, abaixo segue um exemplo de uma declaração de uma variável constante:;essas variáveis não podem ter o seus valores alterados local const $meu_apelido = "brbranco"local const $meu_numero_de_sorte  = 7 ;se em qualquer parte do programa você tentar alterar os valores, será gerado um erro.;uma outra forma de constantes é quando escrevemos texto ou números diretamente no código por exemplo:if $var == "maria" then     ou  aindaif $var == 5 then ;nesse caso "maria" é uma constante string, e "5" é uma constante numérica;o melhor método para se usar uma constante é o do inicio desse exemplo, isso porque fica mais fácil para atualizar o código, veja:

Page 19: Manual Do Autoit

local const $versao_do_script = "1.0.0"msgbox(0,"Versão:" & $versao_do_script) ; depois de uma semana eu vou revisar e atualizar o código, então eu só preciso modificar a constante para "$versao_do_script = 1.0.1", e em todo lugar do código que ;eu uso essa constante será atualizado, se a constante não fosse utilizada eu teria que procurar todas as linhas que contém "1.0.0" e alterar para "1.0.1"  

ArraysAs variáveis array possuem um aspecto igual a uma planilha de cálculo, ou seja ela pode ter várias linhas e várias colunas, veja um exemplo:$meu_array

0 maria

1 joão

2 josé

3 paula

4 katia

Para criar um array com as características igual a tabela mostrado acima declaramos uma variável da seguinte forma:local $meu_array[5] E para adicionarmos os valores:$meu_array[0] = "maria" $meu_array[1] = "joão"$meu_array[2] = "josé"$meu_array[3] = "paula"$meu_array[4] = "katia" E para usarmos os valores armazenadoslocal $nomes = "" for $i = 0 to 4    $nomes = meu_array[$i]    msgbox(0,"Lendo arrays","A linha " & String($i) & ", contém o nome: " & $nomes)next  Para uma visão mais detalhada de sobre os arrays de uma olhada no help do AutoIt.  

Continuando com as funções.Agora vamos ver certas regras para criação de nossas funções:A primeira coisa a ser observada é o uso da "palavra reservada" "Func", que informa ao AutoIT que o bloco de código  a seguir é uma função. A segunda é o nome que será dado a função, esse nome segue as mesmas regras que as das variáveis com exceção do símbolo "$" que não é usado, não se pode ter mais que uma função com o mesmo nome, então quando você for criar uma função tenha certeza que o nome ainda não foi usado(veja no help do AutoIT as funções já existentes), uma função também não pode ter o mesmo nome de uma "palavra reservada" do AutoIT (palavras reservada são: todos os nomes de instruções/macros, por exemplo "While, For, Do, Exit, @Show_Hide, @ScriptDir, etc..."), no help você encontrará a lista completa.

Page 20: Manual Do Autoit

Uma função pode receber vários parâmetros, que são separados por uma virgula, a quantidade exata de parâmetros não é especificada , mas dificilmente iremos estourar esse limite.Os parâmetros passados para uma função podem ser "Variáveis", "Constantes", "Arrays" ( os parâmetros são os nomes que ficam entre o "(" e ")" ), veja agora a definição de uma função:Func MinhaFuncao( parametro1, parametro2, parametro3, ...)       código da função EndFunc Os parâmetros de uma função são opcionais então caso sua função não precise de informações extras, basta deixar a lista de parâmetros vazia: Func MinhaFuncao( )       código da função EndFunc Outra vantagem de se usar funções é que as variáveis declaradas dentro da função só irão ocupar a memória enquanto a função estiver em execução, e assim que ela acabar a memória será liberada, outra vantagem é que as variáveis declaradas dentro da função só são reconhecidas por ela mesmo e com isso você poderá ter nomes de variáveis duplicadas, sem que uma interfira na outra.Func Minha_Primeira_Funcao()     local $var = "joão"    código qualquerEndFunc Func Minha_Segunda_Funcao()    local $var = "maria"    código qualquerEndFuncNo exemplo acima criamos duas funções, e cada uma delas declara uma variável de nome "$var" com um valor diferente, sem causar nenhum conflito. As funções podem ou não retornar um valor, nos exemplos vistos até agora nenhuma função está retornando valores, para que ela possa retorna um valor usamos a palavra reservada "Return" seguida de um valor válido, ou seja podemos retornar um número ou uma string.local $resultado = 0  $resultado = MinhaFuncao_1( 5, 5)msgbox(0,"OK", "O resultado é: " & $resultado) $resultado = MinhaFuncao_2( 5, 5)msgbox(0,"OK", "O resultado é: " & $resultado) Exit ; fim Func MinhaFuncao_1($a, $b)    local $soma

Page 21: Manual Do Autoit

    $soma = $a + $b    return $somaEndFunc ou ainda Func MinhaFuncao_2($a, $b)    return ($a + $b)EndFunc A palavra "Return" , também é usada para sair de uma função a qualquer momentoMinhaFuncao( 0) MinhaFuncao (1)Exit ; fim Func MinhaFuncao($numero)    if $numero == 0 then        Return    endif    msgbox(0,"ok", "O número passado para a função foi:" & $numero)EndFuncNo exemplo acima ao chamarmos a função com o valor de "0" , ela irá retornar sem mostrar nada, e na segunda chamada será mostrado a mensagem. As funções ainda tem outras particularidade que podem ser conhecidas mais a fundo através do "help" do AutoIT, ou analisando as funções existentes do próprio AutoIT. Embora longe de ser um tutorial completo sobre essa linguagem ou sobre programação, as informações aqui mostrados são uma base para se entender um pouco como tudo funciona o restante é questão de estudar melhor cada comando disponível, e fazer muitos teste com o que for prendendo.   

O Editor da SciTE para o AutoITEmbora um script possa ser escrito em qualquer editor de texto( notepad, etc...), a "SciTE" tem um editor feito sobre medida para o AutoIT, usando ele ficará muito mais fácil aprender a linguagem, localizar erros, usar o help, etc... O pacote com completo com o editor/compilador foi postado em nosso fórum na sessão "windows". Abaixo a imagem do editor com um script aberto:

Page 22: Manual Do Autoit

A barra de menu do "SciTE" é bem intuitiva e contém os seguintes itens ( File, Edit, Search, View, Tools, Options, Language, Buffers, Help ), aqui não será detalhado cada um deles, eu irei comentar somente os mais relevantes, o restante pode ser explorado com o tempo.Para demonstrar os itens de menu mais relevantes o leitor poderá acompanhar desde o começo a criação de um script bem simples que apenas mostra uma mensagm na tela, para começarmos vá até o atalho onde foi instalado o "SciTE" editor ( geralmente menu iniciar->Todos os programas-AutoITv3->SciTE->SciTE). Abrindo o editor então teremos, a janela abaixo com o "titulo (Untitled) * SciTE".

Page 23: Manual Do Autoit

O proximo passo será salvar esse arquivo antes de iniciar a digitação do código, para isso selecione o menu "File -> 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 alteração.

Page 24: Manual Do Autoit

 Dica: Ao alterar qualquer coisa nesse script repare que no "titulo" da janela irá aparecer um "*" asterisco logo após o nome do arquivo, isso indica que o script foi alterado. O proximo passo será escrever o código, esse terá poucos linhas mas  será o suficiente para exeplicar muitos detalhes do editor, veja o código: 

Page 25: Manual Do Autoit

Quando o leitor começar a escrever o código 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 lista tecle "ENTER", caso você não queira usar esse recurso tecle "ESC" para a janela "Auto Completar" seja fechada. Outro recurso que facilita muito a leitura do código, são as cores usado pelo editor para separar o que são comentários ( verde ), palavras reservadas ( azul ), variáveis ( marrom ), operadores ( vermelho ), etc...

 Mais um recurso útil são os marcadores de região, veja na imagem abaixo os quadrados com um sinal "-" dentro:

Page 26: Manual Do Autoit

Esses marcadores ajudam a entender onde um bloco de código inicia e termina ou seja um "While" termina em "WEnd" e um "If" termina em "Endif"Dica: Quando você não se lembrar a síntase de um comando então basta selecionar a palavra desejada e teclar "F1", com isso será aberto o help do AutoIT e na página referente a palavra selecionada. Embora ainda tenha vários outros detalhes, esses poderão ser explorados/conhecidos com o tempo e uso do editor.

Com o código escrito agora iremos salvar usando o menu "File->Save", com isso o código estará pronto para ser rodado. Para executar-mos esse código iremos usar o menu "Tools->Go" ou a tecla "F5", se tudo ocorreu corretamente então teremos a seguinte janela:

A janela com os botões (yes, no , cancel) é a que foi criada na 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 código, ela é muito útil pois caso haja algum erro no script você irá localizar rápidamente qual é a linha que está causando o problema.

Editar esta página (se você tiver permissão) | Google Docs – processador de texto, apresentações e planilhas na web.