Sei sulla pagina 1di 27

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 Exit No 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".

Variveis

Para 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 prprocessador/compilador como sendo uma linha de comentrio e no uma instruo).

Operadores
Agora 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). Operadores = += Atrabuies 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")

-=

*=

/=

&=

Operadores
+ * /

Matemticos
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

Operadores
=

Comparao
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) Menor que, testa se o valor da esquerda menor que o da direita, exemplo: 4 < 5 (resposta sim), 5 < 3 (resposta no) Menor ou igual, testa se o valor da esquerda menor ou igual que o da direita, exemplo: 6 <= 10 (resposta sim), 10 <= 6 (resposta no)

==

<> > >= <

<=

Operadores Lgicos
AND OR NOT Operao lgica E. exemplo: If $var = 5 AND $var2 > 6 Then (se $var for igual a 5 "E" $var2 for maior que 6) Operao lgica OU. exemplo: If $var = 5 OR $var2 > 6 Then (se $var for igual a 5 "OU" $var2 for maior que 6) Operao lgica NAO. exemplo: NOT 1 ( NAO 1 igual a zero), NOT 0 ( NAO 0 igual a 1)

Caso no tenha entendido a tabela acima no se preocupe, com o decorrer do tutorial ser mostra como e onde podem ser usados. O primeiro operador que veremos o de atribuio "=", ele usado para atribuir um valor a uma varivel, exemplo: $var = 5, $var = "branco", usamos esse operador para inicializar uma varivel ou para alterarmos um valor j existente nela. Observao: no AutoIT esse operador tambm serve para fazer comparaes, e isso pode confundir o programador iniciante, veja o exemplo abaixo: if $var = 5 then msgbox(0,"OK", "A varivel $var igual a 5") endif Veja que no cdigo acima o operador "=" est sendo usado para fazer uma "comparao" entre o valor que est armazenado na varivel $var e o numero 5,

para no haver confuso voc pode se habituar a usar somente o operador "==" para fazer as "comparaes", e o "=" para as atribuies. Os operadores "matemticos" so de fcil compreenso, 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 varivel exemplo: $var1 + $var2. Uma coisa a ser observada que os operadores na programao tem uma "precedncia", ou seja em uma conta que contenha mais de um operador e de tipos diferentes, os operadores sero executados na seguinte ordem "potncia / diviso / multiplicao / soma / bubtrao", 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 operao da esquerda para a direita e usando os operadores na mesma ordem em que foram informados, mas essa mesma conta sendo feita via programao o resultado ser "7". Nesse ponto que entra a "precedncia" dos operadores na programao, para o AutoIT e todas as outras linguagens que eu conheo o operador "/" que o de diviso tem precedncia ao operador "+", e esse foi o motivo do exemplo acima dar um resultado de "7" na programao e "5" na calculadora, para evitar que contas como essa tenham um valor diferente do esperado devemos usar os smbolos abre parnteses "(" e fecha parnteses ")", para separar uma operao de outra, veja o mesmo exemplo acima usando os parnteses: (4 + 6) / 2 = 5 , nesse exemplo primeiro somado os valores 4+6 e depois dividido por 2, ou seja 4+6 = 10 / 2 = 5 4 + (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 = 7 Dica: Fique atento ao realizar contas como essas, procure sempre usar os smbolos "( )" para separar as operaes, e lembre-se o computador no tem inteligncia alguma, quem ensina ele a fazer alguma coisa o programador, ento se ele for ensinado errado, errado ele far ( caso no antes trave antes hehehehe). Muita gente reclama do windows ( at certo ponto eles tem razo ), mas a maioria das travas ocorridas nesse sistema operacional devido a programas mal escritos. Voltando aos operadores de "atribuio" temos um grupo que ajuda a simplificar cdigo, que so "+=, -=, *=, /= e &=", isso por que eles fazem duas operaes ao mesmo tempo, veja o exemplo: $var = 1 $var = $var + 4 No exemplo acima primeiro inicializamos a varivel $var com um valor numrico 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 atribuio" $var = 1 $var += 4 A mesmo mtodo pode ser usado para os outros operadores matemticos com atribuio, o nico que no matemtico o operador "&=" esse pode ser usado para "juntar/concatenar" duas variveis de texto, exemplo:

$var = "Joo_" $var &= "Alves" O resultado desse cdigo ser que a varivel $var ficar com o seguinte contedo: "Joo_Alves", se no usssemos esse operador o cdigo deveria ser escrito assim: $var = "Joo_" $var = $var & "Alves" Os operadores de comparao tambm so de fcil compreenso, eles so usados para verificar se o valor da esquerda ( maior >, menor <, igual ==, diferente <>, maior ou igual >=, menor ou igual <= ) que o valor da direita, essa operao pode ser feita tanto com nmeros fixos quanto com variveis numricas, esses operadores so muito usados com a instruo "If" que estudaremos logo a seguir, veja os resultados obtidos com as comparaes: Sendo $var1 = 5 e $var2 = 10 temos os seguintes resultados: $var1 > $var2 , resultado no. $var1 < $var2 , resultado sim. $var1 == $var2 , resultado no. $var1 <> $var2 , resultado sim. $var1 >= $var2 , resultado no. $var1 <= $var2 , resultado sim. E o ltimo grupo de operadores so os lgicos, esses operadores atuam como comparadores tanto para nmeros quanto para textos (strings), veja os resultados das comparaes: Sendo $var1 = 0 e $var2 = 1 temos: $var1 and $var2 , resultado falso $var1 or $var2 , resultado verdadeiro Sendo $var1 = "Joo" e $var2 = "Maria" temos: $var1 and $var2 , resultado falso $var1 or $var2 , resultado verdadeiro (dependendo de outra comparao.)

Instrues condicionais
Agora comearemos a ver um grupo de instrues que nos permitem dar lgica ao programa, ou seja tomar decises dependendo de um resultado, criar blocos de cdigo que podem ser executados vrias vezes at que uma condio seja satisfeita.

Instruo If...ElseIf...Else...EndIf
A primeira instruo a ser estudada ser o "If...ElseIf...Else...EndIf" que uma instruo de teste de condio, o "if" se traduzido para o portugus seria equivalente "Se", eo "Then" seria "Ento", o "Else" seria "de outra forma" e o "endIf" serve apenas para finalizar o bloco de cdigo, para que fique bem legvel e de fcil entendimento veja abaixo um exemplo: if 5 == 10 then ; Se 5 for igual a 10 ento execute o cdigo da prxima linha instruo a ser executada elseif 5 == 5 then ; ou se 5 for igual a 5 ento execute o cdigo abaixo instruo a ser executada else ; Se nenhuma das opes estiverem corretas for ento execute o cdigo abaixo instruo a ser executada

endif ; fecha a instruo if No AutoiT no informado at quantos "ElseIF" podem ser usados dentro de uma estrutura "if endIf", mas caso seja necessrio mais que um, ento hora de revisar o cdigo e usar outra instruo( nesse caso a instruo Switch ou Select). O cdigo acima est mostrando a forma mais completa da instruo "if" ou seja independente do resultado um trecho de cdigo ou outro executado, a instruo "if" tambm pode ser usada de uma forma mais simplificada, para analisar somente uma ou outras condies, veja: if 5 = 10 then instruo a ser executada elseif 5 == 5 then instruo a ser executada endif ou if 5 = 10 then instruo a ser executada endif ou ainda if 5 = 10 then instruo 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 cdigo a seguir ir mostrar uma caixa de texto para o usurio, onde ele deve informar a idade, e atravs das instrues "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 sai If $idade == "" Then MsgBox(0,"Erro", "Como voc no informou a idade, ento o programa ser encerrado") Exit EndIf ;testa se o valor digitado um numero ;caso no seja exibe a menssagem e sai If Number($idade) == 0 Then MsgBox(0,"Erro", "Voc deve informar um numero valido") Exit EndIf ;a sequencia de ifs abaixo serviro para testar e mostrar

;a mensagem conforme o valor informado If Number($idade) <= 12 Then MsgBox(0,"OK","Nossa voc ainda uma criana...") Exit EndIf If Number($idade) >= 13 And Number($idade) <= 20 Then MsgBox(0,"OK", "Legal voc um adolecente...") Exit EndIf If Number($idade) >= 21 And Number($idade) <= 40 Then MsgBox(0,"OK", " chegou a hora de pensar oque fazer da vida") Exit EndIf If Number($idade) >= 41 And Number($idade) <= 60 Then MsgBox(0,"OK", "Poxa o tempo passa rpido n?") Exit EndIf If Number($idade) >= 61 And Number($idade) <= 65 Then MsgBox(0,"OK", "T na hora de pensar na aposentadoria.") ElseIf Number($idade) >= 66 And Number($idade) <= 80 Then MsgBox(0,"OK","Puxa que saude, em amigo") Else MsgBox(0,"OK","KaraKa t vai ficar pra semente...") EndIf Exit ;fim do script Nesse exemplo foi usado a funo "Number( expresso)" que retorna o valor numrico da expresso passada e caso a "expresso" no contenha numeros ento ela retorna o valor de zero, esse recurso foi usado porque a varivel $idade uma varivel do tipo string (texto), e foi necessrio usar uma varivel do tipo string porque a funo "InputBox" retorna uma string.

Instruo Switch...Case...EndSwitch
A instruo "Switch" trabalha de forma parecida com o "if" e ideal para analisar um grande nmero de possibilidades, veja como fica o exemplo acima usando o "Switch" ao invs 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 sai If $idade == "" Then MsgBox(0,"Erro", "Como voc no informou a idade, ento o programa ser encerrado") Exit

EndIf ;testa se o valor digitado um numero ;caso no seja exibe a mensagem e sai If Number($idade) == 0 Then MsgBox(0,"Erro", "Voc deve informar um numero valido") Exit EndIf ; testa o valor informado, e mostra a mensagem correspondente Switch $idade case 0 to 12 MsgBox(0,"OK","Nossa voc ainda uma criana...") 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 rpido 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 amigo") case else MsgBox(0,"OK","KaraKa t vai ficar pra semente...") EndSwitch Exit ;fim do script Veja como esse cdigo ficou bem compacto e de melhor entendimento, e faz exatamente o mesmo que o anterior.

Instruo Select...Case...EndSelect
A instruo "Select...Case...EndSelect"

tambm 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 sai If $idade == "" Then MsgBox(0,"Erro", "Como voc no informou a idade, ento o programa ser encerrado") Exit EndIf ;testa se o valor digitado um numero ;caso no seja exibe a menssagem e sai If Number($idade) == 0 Then MsgBox(0,"Erro", "Voc deve informar um numero valido")

Exit EndIf ;a sequencia de ifs abaixo serviro para testar e mostrar ;a mensagem conforme o valor informado If Number($idade) <= 12 Then MsgBox(0,"OK","Nossa voc ainda uma criana...") Exit EndIf 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 rpido 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 amigo") case else MsgBox(0,"OK","KaraKa t vai ficar pra semente...") EndSelect Exit ;fim do script Veja como esse cdigo tambm ficou mais compacto e de melhor entendimento, e faz exatamente o mesmo que os anteriores. Como voc pode observar existem vrias formas de se escrever o mesmo cdigo, a diferena s estar relacionada ao desempenho e a organizao do cdigo para uma leitura e localizao de bugs.

Instrues de lao (looping)


Instruo For...To...Step...Next
A primeira instruo de looping a ser estudada ser o "for", essa instruo permite repetir um bloco de cdigo at que uma determinada condio seja atingida, veja o exemplo: local $meu_numero = 0 ; declara e inicializa a varivel $meu_numero com o valor de 0 (zero) for $i = 1 to 100 $meu_numero += 1 next no final desse processamento a varivel $meu_numero ter um valor de 100. No exemplo acima a instruo "for" ir inicializar a varivel "$i" e increment-la at que ela tenha um valor igual 100, nesse processo todas as instrues/comandos que estiverem entre o "for" e o "next" sero executadas, no nosso exemplo o

comando "$meu_numero += 1" ser executado 100 vezes, ou seja no final do processo a varivel $meu_numero ter um valor de 100. O "for" ainda suporta uma segunda opo que permite controlar os passos de incrementao, o parmetro "Step", veja o exemplo: local $meu_numero = 0 ; declara e inicializa a varivel $meu_numero com o valor de 0 (zero) for $i = 1 to 100 step 2 $meu_numero += 1 next no final desse processamento a varivel $meu_numero ter um valor de 50. No exemplo acima a varivel "$i" ser incrementada por 2 at que ela tenha o valor de 100, como ela ser incrementa de 2 em 2, ento o comando dentro do "lao/looping" ser executado 50 vezes. E por fim o "for" ainda pode fazer o mesmo processo de forma invertida ou seja ao invs de incrementar a varivel ele pode decrement-la, veja: local $meu_numero = 0 ; declara e inicializa a varivel $meu_numero com o valor de 0 (zero) for $i = 100 to 1 step -1 $meu_numero += 1 next Nesse exemplo a varivel "$i" ser inicializada como valor de 100 e ser decrementada at que tenha o valor de 1, o parmetro "Step" ir funcionar da mesma forma que o exemplo anterior, s que ele deve ter um sinal de "subtrao" antes do nmero de decrementao que no nosso exemplo o "-1", ou tambm poderia ser "-2" ou qualquer outro valor desejado. A instruo "for" muito usada para percorrer listas, e um tipo diferente de varivel que ainda no foi explicada, que so as "arrays", esse tipo de varivel contm um ndice numrico que facilmente percorrido usando o "for". Dica: Ao usar a instruo "for" ou outras instrues de "lao/looping", voc dever ter certeza que a condio de parada desse "looping" seja alcanada, caso contrrio 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 varivel $meu_numero com o valor de 0 (zero) for $i = 1 to 100 $meu_numero += 1 $i=1 next veja que propositalmente eu estou alterando o valor da varivel '$i' para 1, com isso o "looping" ser infinito.

Instruo While...WEnd

A instruo "While ... WEnd" , executa um looping enquanto uma expresso for verdadeira, veja o exemplo: local $meu_numero = 0 while $meu_numero <= 100 $meu_numero += 1 wend o looping ser executado enquanto a varivel $meu_numero for menor ou igual 100 O cdigo acima tambm poderia ser escrito da seguinte forma: local $meu_numero = 0 while 1 if $meu_numero >= 100 then ExitLoop endif $meu_numero += 1 wend Nesse exemplo o ponto de parada do looping feito com a ajuda da instruo "if", ou seja a instruo "if" ir testar o valor da varivel $meu_numero e quando ela tiver um valor maior ou igual a 100, ento o comando "ExitLoop" ser executado fazendo com que o looping seja encerrado. Como voc pode notar o looping s executado "quando e enquanto" a expresso informada for verdadeira, e repare tambm que a expresso poder ser composta como no primeiro exemplo ou pode ser simples como no segundo, o que importa mesmo para essa instruo que a expresso tenha um valor diferente de zero. Dica: para o AutoIT e outras linguagens de programao um valor s verdadeiro quando ele diferente de zero, com isso at um valor negativo ( -1, -2, etc...) so considerados como verdadeiros. Veja que nesse segundo exemplo eu usei o nmero "1" para ter uma expresso com um valor verdadeiro, caso eu coloca-se o nmero "0" o looping no 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 traduo dessa linha : "faa enquanto for verdadeiro"

Instruo Do...Until
Essa instruo muito parecida com a anterior a diferena principal que o "While... WEnd" s ir executar o cdigo dentro dentro dele caso a expresso seja verdadeira, j o "Do...Until" ir executar ir executar o cdigo dentro dele pelo menos uma vez, isso porque a expresso a ser analisada ir ficar no final do looping e no no incio como acontece com o "While...Wend", veja o exemplo: local $meu_numero = 0 Do

$meu_numero += 1 Until $meu_numero >=100 Nesse exemplo o comando "$meu_numero += 1" executado independente de qualquer coisa, e por fim testado se a expresso "$meu_numero maior ou igual a 100", e caso for verdadeiro ento o looping encerrado. A traduo desse cdigo seria : "Faa $meu_numero += 1 at que $meu_numero seja maior ou igual 100" Para o "Do..Until" pode ser aplicado os mesmos mtodos que foram usados nos exemplos do "While...Wend"

Essas so as principais instrues de condio e looping, embora existam outras elas s sero explicadas em momentos oportunos para facilitar o aprendizado. Para fixar as instrues mostradas at agora, irei expor um problema, depois irei fazer uma anlise 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 emulao.

Problema:
Eu uso o front-end chamado advmenu, e ele permite que eu chame qualquer emulador atravs 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 nmero, e o advmenu ir passar para ele o nome da rom.

Anlise de como resolver esse problema:

J que o advmenu s capaz de passar o nome da rom, ento ao invs 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 nmero correspondente ao jogo, e por fim fazer com que o script chame o "zinc.exe" passando para ele esse nmero, fora isso meu script ter que ficar esperando at que eu acabe de jogar e feche o emulador, caso eu no faa 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 organizao vou declarar e inicializar todas as minhas variveis 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 varivel especial ( $cmdline) do AutoIT que retorna quantos e quais parmetros 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 no passou o nome da rom a ser carregada") Exit endif

;agora que eu j sei que o advmenu me passou algum parmetro ;ento vou peg-lo e testar para ver se um nome vlido ;caso o nome seja vlido ento irei usar a varivel $numero_do_jogo, para guardar o nmero 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 = 0 endselect ;depois desse bloco que verifica se o nome da rom igual a um dos trs nomes informados nas instrues "case" ;chega a hora de verificar se a varivel $numero_do_jogo est com um valor diferente de zero ;caso ela tenha o valor de zero, isso indica que o nome passado no existe no meu script. if $numero_do_jogo == 0 then msgbox(0,"Erro","O nome passado pelo advmenu no conhecido pelo script") Exit endif ;agora que eu j o nmero correto do jogo, chega a hora de chamar o emulador ;para isso vou usar uma funo do AutoIT que alm de chamar, tambm ir fazer o script ficar em ;estado de espera at que o emulador seja encerrado ShellExecuteWait("zinc.exe", String($numero_do_jogo), @ScriptDir, "open", @SW_HIDE) ;se a funo 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 prximos comandos abaixo sero 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 no 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 varivel especial chamada "$cmdline" essa varivel criada e mantida pelo AutoIT, e a nica coisa que podemos fazer com ela ler o seu valor. No script tambm foi usado uma "funo" (as funes ser o prximo tema a ser explicado), e nessa funo foram usadas duas "MACROS" (@ScriptDir, @SW_HIDE)

a primeira contm o caminho completo de onde o script foi chamado por exemplo (c:\meus_scripts), e a segunda contm um nmero que fora 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 no quero que essa janela seja visvel, ento mando que ela no seja mostrada). Esse comandos extras que foram usados podem ser consultados no "Help fo AutoIT", l o leitor poder ver a lista completa.

Funes.
Uma funo um bloco de cdigo que iremos escrever uma nica vs e dar um nome, depois da funo ser criada podemos usar ela em qualquer parte de nosso script chamando ela pelo nome. As funo permitem deixar o cdigo fcil de se entender, atualizar e localizar erros, as funes se fazem necessrias do momento que voc tiver que escrever blocos de cdigo repetidos em vrias 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 No exemplo acima eu tive que repetir 2 vezes um mesmo cdigo sendo que s alterei o o nome do emulador, e teria que repetir esse mesmo bloco de cdigo outras vezes para verificar se outros emuladores esto abertos, para casos como esse, o recomendado seria criar uma funo que fizesse esse trabalho de uma forma mais prtica, veja: ;veja com a funo criada basta apenas eu passar o nome para a funo ;e ela se encarregar do resto FechaEmulador("zinc.exe") ; aqui seria escrito outras tarefas a serem realizadas FechaEmulador("mame.exe") ;aqui outras tarefas a serem realizadas ;essa a funo criada para facilitar/diminuir o cdigo do exemplo anterior Func Fecha_Emulador( $nome) if ProcessExist($nome) then

ProcessClose($nome) msgbox(0,"OK", O emulador " & $nome & ", estava aberto e foi fechado") endif EndFunc Veja como no exemplo acima como cdigo ficou bem mais fcil para realizar a manuteno/alterao, isso porque vamos supor que eu no queira mais que a mensagem seja mostrada, ento basta eu alterar/deletar uma nica linha da funo e isso j estar resolvido, agora no primeiro exemplo eu teria que alterar todas a linhas onde tivesse os "msgbox".

Variveis Constantes e Array

Antes de explicar como as funes trabalham irei explicar sobre mais dois tipos de variveis que ainda no foram vistas (variveis constantes e variveis array) Constantes ( const ) Uma varivel constante declarada com a palavra reservada "Const", e uma varivel declarada dessa forma no 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 declarao de uma varivel constante: ;essas variveis no 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 nmeros diretamente no cdigo por exemplo: if $var == "maria" then ou ainda if $var == 5 then ;nesse caso "maria" uma constante string, e "5" uma constante numrica ;o melhor mtodo para se usar uma constante o do inicio desse exemplo, isso porque fica mais fcil para atualizar o cdigo, veja: local const $versao_do_script = "1.0.0" msgbox(0,"Verso:" & $versao_do_script) ; depois de uma semana eu vou revisar e atualizar o cdigo, ento eu s preciso modificar a constante para "$versao_do_script = 1.0.1", e em todo lugar do cdigo que ;eu uso essa constante ser atualizado, se a constante no fosse utilizada eu teria que procurar todas as linhas que contm "1.0.0" e alterar para "1.0.1"

Arrays
As variveis array possuem um aspecto igual a uma planilha de clculo, ou seja ela pode ter vrias linhas e vrias colunas, veja um exemplo: $meu_array 0 maria 1 joo 2 jos

3 paula 4 katia Para criar um array com as caractersticas igual a tabela mostrado acima declaramos uma varivel da seguinte forma: local $meu_array[5] E para adicionarmos os valores: $meu_array[0] = "maria" $meu_array[1] = "joo" $meu_array[2] = "jos" $meu_array[3] = "paula" $meu_array[4] = "katia" E para usarmos os valores armazenados local $nomes = "" for $i = 0 to 4 $nomes = meu_array[$i] msgbox(0,"Lendo arrays","A linha " & String($i) & ", contm o nome: " & $nomes) next Para uma viso mais detalhada de sobre os arrays de uma olhada no help do AutoIt.

Continuando com as funes.


Agora vamos ver certas regras para criao de nossas funes: A primeira coisa a ser observada o uso da "palavra reservada" "Func", que informa ao AutoIT que o bloco de cdigo a seguir uma funo. A segunda o nome que ser dado a funo, esse nome segue as mesmas regras que as das variveis com exceo do smbolo "$" que no usado, no se pode ter mais que uma funo com o mesmo nome, ento quando voc for criar uma funo tenha certeza que o nome ainda no foi usado(veja no help do AutoIT as funes j existentes), uma funo tambm no pode ter o mesmo nome de uma "palavra reservada" do AutoIT (palavras reservada so: todos os nomes de instrues/macros, por exemplo "While, For, Do, Exit, @Show_Hide, @ScriptDir, etc..."), no help voc encontrar a lista completa. Uma funo pode receber vrios parmetros, que so separados por uma virgula, a quantidade exata de parmetros no especificada , mas dificilmente iremos estourar esse limite. Os parmetros passados para uma funo podem ser "Variveis", "Constantes", "Arrays" ( os parmetros so os nomes que ficam entre o "(" e ")" ), veja agora a definio de uma funo: Func MinhaFuncao( parametro1, parametro2, parametro3, ...) cdigo da funo EndFunc Os parmetros de uma funo so opcionais ento caso sua funo no precise de informaes extras, basta deixar a lista de parmetros vazia: Func MinhaFuncao( )

cdigo da funo EndFunc Outra vantagem de se usar funes que as variveis declaradas dentro da funo s iro ocupar a memria enquanto a funo estiver em execuo, e assim que ela acabar a memria ser liberada, outra vantagem que as variveis declaradas dentro da funo s so reconhecidas por ela mesmo e com isso voc poder ter nomes de variveis duplicadas, sem que uma interfira na outra. Func Minha_Primeira_Funcao() local $var = "joo" cdigo qualquer EndFunc Func Minha_Segunda_Funcao() local $var = "maria" cdigo qualquer EndFunc No exemplo acima criamos duas funes, e cada uma delas declara uma varivel de nome "$var" com um valor diferente, sem causar nenhum conflito. As funes podem ou no retornar um valor, nos exemplos vistos at agora nenhuma funo est retornando valores, para que ela possa retorna um valor usamos a palavra reservada "Return" seguida de um valor vlido, ou seja podemos retornar um nmero 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 $soma = $a + $b return $soma EndFunc ou ainda Func MinhaFuncao_2($a, $b) return ($a + $b) EndFunc A palavra "Return" , tambm usada para sair de uma funo a qualquer momento MinhaFuncao( 0) MinhaFuncao (1) Exit ; fim

Func MinhaFuncao($numero) if $numero == 0 then Return endif msgbox(0,"ok", "O nmero passado para a funo foi:" & $numero) EndFunc No exemplo acima ao chamarmos a funo com o valor de "0" , ela ir retornar sem mostrar nada, e na segunda chamada ser mostrado a mensagem. As funes ainda tem outras particularidade que podem ser conhecidas mais a fundo atravs do "help" do AutoIT, ou analisando as funes existentes do prprio AutoIT. Embora longe de ser um tutorial completo sobre essa linguagem ou sobre programao, as informaes aqui mostrados so uma base para se entender um pouco como tudo funciona o restante questo de estudar melhor cada comando disponvel, e fazer muitos teste com o que for prendendo.

Embora 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 fcil aprender a linguagem, localizar erros, usar o help, etc... O pacote com completo com o editor/compilador foi postado em nosso frum na sesso "windows". Abaixo a imagem do editor com um script aberto:

O Editor da SciTE para o AutoIT

A barra de menu do "SciTE" bem intuitiva e contm os seguintes itens ( File, Edit, Search, View, Tools, Options, Language, Buffers, Help ), aqui no 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 comeo a criao de um script bem simples que apenas mostra uma mensagm na tela, para comearmos v at o atalho onde foi instalado o "SciTE" editor ( geralmente menu iniciar->Todos os programas-AutoITv3->SciTE->SciTE). Abrindo o editor ento teremos, a janela abaixo com o "titulo (Untitled) * SciTE".

O proximo passo ser salvar esse arquivo antes de iniciar a digitao do cdigo, 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 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 lista tecle "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 para ser rodado. Para executar-mos esse cdigo iremos usar o menu "Tools->Go" ou a tecla "F5", se tudo ocorreu corretamente ento teremos a seguinte janela:

A janela com os botes (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 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.