Jump to content
Sign in to follow this  
Manimal

Dicas e truques

Recommended Posts

Olá pessoal.

   Aproveitando o feriado de carnaval, que dependendo da região é mais ou menos comemorado, quero abrir um tópico para que todos possam dar sua contribuição em dicas, macetes e truques ao utilizar o AutoIt.

   Afinal todos nós, de uma maneira ou outra, ao fazermos nosso scripts, utilizamos as vezes sem nem mesmo pensar, alguma dica ou macete.

   Vou tentar manter compilado aqui no 1o post, essas dicas. Não tem sequência, nem melhor nem pior. Só uma lista!

1) a diretiva #include serve para incorporarmos códigos já prontos referentes a um determinado tópico aos nossos scripts. Ao utilizarmos o #include tem duas maneiras, que passam desapercebidas:

  • #include <> com os sinais de maior e menor, que identifica um arquivo que será procurado e incorporado a partir da subpasta Include da pasta principal do AutoIt
  • #include "" com as aspas, que identiica um arquivo que está na mesma pasta do script, facilitando assim para desdobrar o script em vários outros scripts menores para facilitar a edição ou manutenção

Exemplos:
   #include <Misc.au3> - estamos procurando o arquivo Misc.au3 que está na pasta Include
   #include "MeuScript.au3" - estamos procurando o arquivo MeuScript.au3 que está na mesma pasta do meu script stual

   Aqui fica uma segunda dica que eu utilizo. Quando o script passa a ser meio genérico, tipo uma biblioteca de scripts em comum a vários projetos (vide o tópico Framework), eu costumo criar um link simbólico do arquivo na subpasta Include. Dessa forma, tenho o melhor dos dois mundos, pois mantenho o script "à mão" e ao mesmo tempo ele está disponível para qualquer projeto, sem criar uma cópia do mesmo e correndo o risco de ficar com arquivos desatualizados.

2) Já aconteceu a situação de vc testar seu código e as mensagens estarem em português correto (ou com acentos) mas ao compilar o mesmo script, ele aparece com alguns caracteres malucos no lugar dos acentos?
   Outra situação é quando eu vejo o pessoal reclamando do erro UTF-8 ou UNICODE ao compilar algum script, principalmente do fórum gringo. Isto acontece porque ao escrevermos nosso códigos no SciTe (assumindo que vc use o editor padrão do AutoIt), os códigos são escritos utilizando o código de página Windows 1252, que preserva os acentos e demais caracteres diferenciados da nossa língua portuguesa e similares. Porém, várias ferramentas do AutoIt e outras exigem UNICODE como forma de codificação.
   Não vou entrar em detalhes aqui (não é local para isto), mas minha recomendação é que vcs modifiquem o SciTe para que todos os seus scripts sejam gravados em UTF-8 with BOM, que é um padrão internacional UNICODE. Assim, vc ganha de várias formas:

  • os acentos que estão no seu código em desenvolvimento serão transferidos adequada e corretamente para a versào compilada
  • pode-se trocar scripts (ou compartilhá-los) nos fóruns estrangeiros sem problemas
  • as ferramentas do AutoIt e outras externas não reclamarão da codificação do arquivo.

   Mas atenção, ao fazer esta modificação é necessário abrir o script, mudar a codificação e conferir o script para as mudanças que possam surgir, principalmente nas mensagens ao usuário. Ao salvar o script, ele já será salvo nste novo formato.
   Para fazer isto, com o script aberto no SciTe, vá no menu FILE, opção ENCODING e troque de Code Page Property para UFT-8 with BOM e salve seu script ou feche o editor, salvando o arquivo.
   Finalmente este procedimento é necessário ser feito em todos os seus scripts, o que dependendo da quantidade, pode ser um processo longo e trabalhoso/tedioso, assim vou colocar em outro tópico um script para fazer este processo de forma automática (a conversão apenas). Mesmo assim é importante que os scripts sejam conferidos. Veja aqui => Conversão de Codificação dos Scripts

E vem mais por aí... A comunidade agradece!

  • Thanks 2

Share this post


Link to post
Share on other sites

Olá.

   Vc sabia que o SciTe é um baita editor (para AutoIt, pelo menos)? Claro que tem outros como o Sublime ou até mesmo o EditpadLite. Sem falar nos específicos, como o ISN Auto Studio. Mas vamos nos ater ao SciTe, por enquanto.

   As vezes, usamos só o básico por desconhecimento das funções mais "cabeludas", mas igualmente interessantes.

   E tbm, com um pouco de ajustes, vc pode personalizar mais ainda o SciTe.

   Minha sugestão é começar baixando o SciTe atualizado aqui => https://www.autoitscript.com/site/autoit-script-editor/downloads/

   O SciTe é uma versão do editor Scintilla, especificamente ajustado para o AutoIt (ambos freeware). O Scintilla/SciTe está na versão 4.3 e o mais atualizado para o AutoIt é a versão 4.2.

   Sempre tem melhorias e mudanças, por isso recomendo volta e meia, dar uma olhadinha para ver se tem alguma versão mais atualizada.

   Ao baixar e instalar o SciTe atualizado (v4.2), ainda podemos fazer mais alguns ajustes finos nele. Recursos que eu uso com frequência:

  • Abreviações (excelentes)
  • Duplicar uma linha ou um bloco mais fácil do que usar o Ctrl C e Ctrl V é pressionar Ctrl D
  • Localizador de funções = Alt L
  • Para pular direto para a função = com o cursor na função digite Ctrl J e vai pra função, pode mexer à vontade daí Ctrl Shift J volta pro ponto anterior (muito bom). Serve inclusive para as funções internas do AutoIt (para tirar alguma dúvida ou apenas para estudo mesmo)
  • Bookmarks = marca pontos no script e permite ir e voltar para eles rapidamente. Ctrl F2 para criar um bookmark e apenas F2 para trocar entre eles. Pode criar quantos quiser. Só existe enquanto não fechar o editor.
  • Para abrir um include rapidamente = vá a té a linha do include e pressione Alt I (alt i)
  • Em scripts grandes, clique no menu View e depois em Toogle All Folds, para "encolher" todas as funções. Faça novamente para "abrir" tudo de novo. Muito útil para navegar para cima e para baixo.
  • Se quiser "encolher" manualmente cada bloco de código (pode ser uma função, um IF, um FOR, um WHILE, várias linhas de comentários, etc) pressione o + (sinal de mais) do bloco numérico. Pressionando novamente, "abre" o bloco
  • Para comentar/descomentar linhas de código pressione o - (sinal de menos) do bloco numérico. Serve para a linha atual, não importa onde está o cursor. Se quiser fazer com várias linhas, marque as linhas e pressione a tecla para comentar/descomentar
  • Ao pressionar o TAB ou Shift TAB, vc pode aumentar ou reduzir a identação do seu código. Para várias linhas, marque as linhas e aperte o TAB.

   Funções não tão comuns, mas tbm úteis:

  • Para criar um cabeçalho de função (para fins de documentação) = Ctrl Alt H. Tem como ajustar os detalhes permanentemente
  • Opção avançada para trabalhar com várias linhas ao mesmo tempo, como se fosse o TAB, mas para escrever, apagar ou editar: vá até a linha que inicia o bloco e deixe o cursor no local correto, agora mantenha pressiona o Shift e o Alt e clique com o mouse no ponto onde vc quer marcar o bloco. Se fizer certo vai aparecer um "cursorzão". Tudo que digitar ou apagar será replicado para as outras linhas.

   No mesmo estilo, vc pode usar "blocos verticais". O padrão do Scite é usar blocos horizontais, ou seja, ao marcarmos um bloco as "linhas" são marcadas. Porém eventualmente precisamos marcar um bloco "vertical", que seria um bloco no meio das linhas, não sei se fui claro...
Neste caso, ponha o cursor no início do bloco a ser marcado e depois segurando os mesmos Shift e Alt, clique aonde (qual coluna) vc quer marcar o fim do bloco. Com o bloco marcado, pode usar quaisquer opções (Ctrl C, Ctrl D, Del, etc).

   A diferença entre um cursorzão e o bloco vertical é a coluna onde vc está clicando para marcar o fim do bloco. Se clicar numa coluna IGUAL à do cursor, gera um cursorzão, se clicar em uma coluna diferente, gera um bloco vertical.

   E daí? Vcs tem mais algumas dicas? Vamos lá!

   Próximo post será sobre como customizar o SciTe (se quiser).

Share this post


Link to post
Share on other sites

Olá.

   Dando sequência na ideia de customizar o SciTe, para fazê-lo basta editar os arqs de configuração.

   Isto pode ser feito de dentro do editor, pelo menu Option e selecionando o arquivo a ser modificado,
   Ou editando estes mesmos arquivos externamente através do bloco de notas (ou similar). Porém se fizer isso, recomendo que o SciTe esteja fechado para evitar que as alterações não sejam gravadas ou sejam sobregravadas quando o SciTe fechar.

   De qualquer maneira, editando estes arquivos (e quaisquer outros) pode aumentar o seu controle sobre o SciTe e deixar o seu ambiente de trabalho mais amigável. Vamos aos arquivos:

1) Menu Options / Open User Options File, ou externamente edite o arquivo "C:\Program Files (x86)\AutoIt3\SciTE\SciTEUser.properties"

Este arquivo controle várias configurações do SciTe, em particular algumas das mais interessantes como:

highlight.current.word=1 => para realçar a palavra onde está o cursor e podermos visualmente identificar as iguais no resto do código. Dica: quando fizer isto, normalmente mostra somente na tela as palavras iguais. No momento que vc move o cursor, vai selecionar outra palavra. A dica aqui é usar o botão do meio do mouse para rolar e ver as demais coincidências no resto do script
highlight.current.word.minlength=3 => identifica qual o mínimo de letras para realçar uma palavra
use.tabs=0 => para escolher entre tabulação ou espaço nas identações. Pessoalmente prefiro espaços, ou seja, quando eu aperto o TAB o SciTe insere x espaços a cada TAB. Para usar o TAB mesmo, coloque use.tabs=1
tabsize=3 => para escolher quantos espaços serão inseridos a cada TAB
indent.size=3 => para escolher quantos espaços serão inseridos a cada nova linha para manter a identação
highlight.current.word.stoponspace=0 => quando vc seleciona com o Shift uma quantidade maior do que uma palavra, tbm funciona o realce, porém ao chegar no primeiro espaço, para de realçar. Com esta opção, não para. Eu acho ótimo para comparar visualmente 2 linhas de código, pois ao marcar com o Shift, vai mostrando se a outra linha está igual. As vezes, uma pequena diferença como um apóstrofe é ruim de ver, mas no realce é fécil de ver.

Tbm para mexer nas cores do editor, mexa nas seguintes configurações

  • #Background -> style.au3.32=style.*.32=$(font.base),back:#F0F4F9
  • # CaretLineBackground           -> caret.line.back=
  • # Brace highlight                 -> style.au3.34=
  • # Brace incomplete highlight    -> style.au3.35=
  • # White space                     -> style.au3.0=
  • # Comment line                     -> style.au3.1=
  • # Comment block                  -> style.au3.2=
  • # Number                           -> style.au3.3=
  • # Function                        -> style.au3.4=
  • # Keyword                        -> style.au3.5=
  • # Macro                            -> style.au3.6=
  • # String                           -> style.au3.7=
  • # Operator                        -> style.au3.8=
  • # Variable                        -> style.au3.9=
  • # Sent keys                        -> style.au3.10=
  • # Pre=Processor                  -> style.au3.11=
  • # Special                        -> style.au3.12=
  • # Abbrev=Expand                  -> style.au3.13=
  • # Com Objects                     -> style.au3.14=
  • # Standard UDF's                 -> style.au3.15=

   As minhas cores são basicamente o padrão, porém eu gosto de usar uma cor amarela para realçar a linha atual que estou trabalhando. Então eu mexi na linha
caret.line.back=#FFFA2B

   Se fizer isto por detro do prório editor, ao pressionar Ctrl S para salvar, a mudança aparece na hora.

   Para ajudar a selecionar cores e os seus códigos eu recomendo 2 sites, onde vc pode selecionar as cores e copiar o código hexa ou informar o código hexa e ver a cor desejada:

  1. https://www.colorschemer.com/color-picker/
  2. https://www.rapidtables.com/web/color/RGB_Color.html

 

  • Like 1
  • Thanks 1

Share this post


Link to post
Share on other sites

2) O outro aquivo a ser modificado, se quiser, é o arquivo das Abreviações.

   Abreviações, para quem não conhece é uma maneira bem legal de facilitar a codificação, pois reduz bastante a digitação (e obviamente os erros) por aceitar atalhos.
   Funciona mais ou menos assim, vc está escrevendo o código e vc vai fazer um ConsoleWrite, daí em vez de digitar o comando inteiro, vc digita

  • cw e pressiona Ctrl B

   E o editor "escreve" o comando inteiro e ainda coloca um @CRLF no final, ou seja, faz o trabalho por vc. Mamão com açúcar.

   Existem "trocentas" abreviações. Tbm não tem como saber tudo e nem precisa, mas pelo menos algumas são obrigatórias (como o CW, por exemplo).
   Outra que gosto muito é o incl, depois Ctrl B, e vc sai digitando o nome do arquivo de include que vai sendo preenchido o nome correto e vc encerra com Enter!!!

   Para conhecer as abreviações olhem o arquivo "C:\Program Files (x86)\AutoIt3\SciTE\au3abbrev.properties", ou entrem no SciTe, menu Options, opção Open Abbreviations File, mas se precisarem editar para criar novas abreviações usem a Menu Options, opção Open au3UserAbbrev.properties, porque se vcs editarem o arquivo principal, ao atualizarem o SciTe, as alterações serão perdidas, então trabalhem sempre nos arquivos tipo USER.

   Vc pode criar quantas abreviações quiser com quaisquer combinações malucas de letras, desde que não conflitem com as originais, claro.
   Um detalhe interessante ao criar/editar abreviações é que o I (pipe) é a posição onde o cursor vai ficar após o Ctrl B, ou seja vc mesmo coloca o cursor onde ele deve ficar.
   Tipo (exemplo meu):

  • cw[=ConsoleWrite("[" & | & "]" & @CRLF)

   Neste caso, ao digitar cw[ e pressionar Ctrl B, vai escrever todo o comando do ConsoleWrite, e deixar o cursor exatamente no local para inserir uma variável! Isto é muito legal!

   outro exemplo:

  • ""=" & | & "

   Aqui, após o Ctrl B, as aspas duplas são subtituídas por abre e fecha string e deixa no local para continuar o código.

   Depois que vc acostuma com isso, é muito mais rápido de trabalhar e ajuda "paracamba"!

 

   Mudando um pouco, acredito que todos utilizem o recurso de hint, até porque ele está ativo por default.
   O recurso de hint é aquele que ao escrever uma função do AutoIt, ele apresenta os parâmetros que vc deve preencher, inclusive acompanhando a medida que vc os escreve.

   E para aquele que não conhecem (acho difícil), pressionar F1 em um comando ou função qualquer do AutoIt, abre o Help focalizado nesta função, o que é bem útil em algumas situações!

   Alguém aí tem mais alguma dica?

Share this post


Link to post
Share on other sites

Agora vou falar sobre alguns programas externos que eu uso diariamente, que me ajudam um monte ao fazer minhas tarefas.

1) WInMerge = https://winmerge.org/

   O WinMerge é um comparador de arquivos. Sua principal função é comparar arquivos estilo TXT (como scripts) e mostrar as diferenças entre eles.
   Serve também para quaisquer outros tipos de arquivos, mas nos arquivos estilo TXT é que ele mostra sua força.
   Quer comparar 2 fontes? Quer comparar 2 arqs INI? Quer comparar sei lá o que? WinMerge te ajuda.
   Ele mostra linha a linha as diferenças e ainda permite que vc copie de um lado para outro se vc quiser.
   Compara até pastas, informando quais arquivos são iguais e quais são diferentes. E quando vc escolhe um arquivo, ele detalha como expliquei acima.
 

2) GrepWin = https://tools.stefankueng.com/grepWin.html

   Para efetuar pesquisas dentro dos arquivos, o GrepWin é fantástico.
   Eu uso muito para encontrar referências dentro dos scripts da pasta Include por exemplo, mas ele serve para qualquer tipo de pesquisa.
   É só clicar com o botão direito na pasta que vc quer procurar e informar o que procurar que ele sai vasculhando.
   Tem pesquisa Regex, mostra os arquivos e trechos onde achou o item pesquisado e até mesmo pode ser usado para REPLACE.
 

3) Everything = https://www.voidtools.com/

   Sabe aquele search de arquivos do Windows que leva uma eternidade para localizar o que vc quer? Mande pro inferno...
   O Everything é extremamente rápido e encontra tudo que vc quiser em questão de segundos (se não antes).
   Precisa procurar um arquivo pelo nome? Mesmo parcial? Não sabe qual pasta ele está? Vc sabe quantos arquivos .MP3 vc tem? Ou .JPG?
   A medida que vc vai digitando os nomes na barra de pesquisa, ele vai filtrando os resultados. Por exemplo:

  • .PDF - mostra todos os PDFs que tem na máquina
  • .PDF jorge - mostra todos os PDFs que tem o nome jorge (em qualquer llugar do nome)
  • .PDF jorge contratos\ - mostra todos os PDFs com o nome jorge na pasta contratos

   E assim por diante. Com os recursos de AND, OR e NOT, vc tem um poderoso procurador de arquivos instantâneo!
   Outro ponto positivo, no português brasil, é que ele ignora acentos e cedilha. Assim ao procurar "declaracao" ele acha "declaração" tbm!!
   Mesmo assim, para procurar DENTRO dos arquivos, ainda recomendo o GrepWin ou o FileSearchy (como 2a opção).
 

4) Ditto = https://ditto-cp.sourceforge.io/

   Um gereciador de clipboard. Não sabe o que é isso? Lembra do copia-e-cola? CTRL-C e CTRL-V que usamos diariamente?
   Pois é, pense nisso como um turbinador dessa função. Com o Ditto, vc pode guardar até os últimos 500 recortes.
   Sabe quando vc copiou um trecho de alguma coisa e entre uma coisa e outra ao colar, colou outra coisa que vc copiou nesse meio tempo?
   Pois é. Com o Ditto, vc pode recuperar o que foi copiado, sem precisar copiar de novo!
   Nunca pensei que usaria um destes. Até fui muito resistente a instalar este programa. Hoje não vivo mais sem ele!
   Não muda nada no CTRL-C e CTRL-V normal, mas facilmente vc pode olhar, selecionar e até pesquisar os últimos CTRL-C que foram feitos e o melhor, reaproveitá-los!
   Hoje eu uso para salvar senhas da repetição, códigos, informações que posso usar depois. É muito prático.

E daí O que acharam? Tem outras recomendações?
Eu uso mais uma penca de aplicativos aqui... Inclusive vários eu cobro para instalar/configurar para os meus colegas advogados (hehehehe)

  • Like 1

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this  

×