Ir para conteúdo


Foto
* * * * * 1 votos

Pequenos scripts úteis


  • Por favor, faça o login para responder
22 respostas neste tópico

#1 Luigi

Luigi

    Administrador

  • Administradores (Adm)
  • PipPipPipPipPip
  • 601 posts
  • LocationCWB

Postado 05 abril 2015 - 12:17

Substituição em lote

Pra quem trabalha com GDI+, já se deparou que os velhos scripts que escreveu não abrem na última versão.

A solução é bastante simples, a variável $ghGDIPDll teve seu nome atualizado para $__g_hGDIPDll.

Então é só você pegar o nome antigo e substituir pelo novo. Simples não?
Mas e quando são algumas dezenas ou centenas de arquivos?

Eu fiz o script abaixo, que você apenas diz qual diretório deve ser lido, qual a substituição.

Então ele lê o diretório inteiro em busca dos arquivos .au3, monta um array, e depois abre cada arquivo .au3 e verifica se existe a string $ghGDIPDll, caso exista, ele substitui por $__g_hGDIPDll, salva o arquivo e fecha.

Simples e rápido.

Por favor Login ou se não possuir um conta Registre-se para ver o conteúdo escondido

Apagar um arquivo recursivamente

As vezes eu tenho o costume de pegar uma pasta do Windows, e personalizar o ícone desta pasta para algo que facilite visualmente a sua localização.

Funciona, mas quando você faz um backup de HD, esse recurso não funciona mais, e esses "desktop.ini" apenas existem por bonito.

Então pra não ficar apagando um a um, o script abaixo varre o diretório, e onde existir "desktop.ini" será removido.

Por favor Login ou se não possuir um conta Registre-se para ver o conteúdo escondido

Limpando a lixeira do Windows (testado no Windows Seven)
Por vezes eu esvazio a lixeira, mas ela não apaga realmente todos os arquivos.

Fiz esse script para dar um "file ultra kill" em qualquer tipo de arquivo na lixeira.

Ele também remove qualquer arquivo no C:\Windows\Temp, C:\Windows\SoftwareDistribution\Download e C:\Users\@UserName\AppData\Local\Temp.

Por favor Login ou se não possuir um conta Registre-se para ver o conteúdo escondido

Algoritmo de

Por favor Login ou se não possuir um conta Registre-se para ver o conteúdo escondido

.

(Desenha) plota uma linha de (x1, y1) até (x2, y2)

Por favor Login ou se não possuir um conta Registre-se para ver o conteúdo escondido

Algoritmo para plotar um circulo

-----------@@@@@@@------------

--------@@@-------@@@---------

------@@-------------@@-------

-----@-----------------@------

----@-------------------@-----

---@---------------------@----

--@-----------------------@---

--@-----------------------@---

-@-------------------------@--

-@-------------------------@--

-@-------------------------@--

@----@@@------@@@-----------@-

@---@---@----@---@----------@-

@--@-----@--@-----@---------@-

@--@-----@--@-----@---------@-

@--@-----@--@-----@---------@-

@---@---@----@---@----------@-

@----@@@------@@@-----------@-

-@-------------------------@--

-@-------------------------@--

-@-------------------------@--

--@-----------------------@---

--@-----------------------@---

---@---------------------@----

----@-------------------@-----

-----@-----------------@------

------@@-------------@@-------

--------@@@-------@@@---------

-----------@@@@@@@------------

------------------------------

Por favor Login ou se não possuir um conta Registre-se para ver o conteúdo escondido

JANELA SOBRE JANELA - GuiCreateEx

Quando você possui uma janela e por exemplo, precisa abrir uma janela acima da principal, com configurações, e quando apertar ESC, fechar esta que está como secundária acima da principal e retornar a visão/foco para a principal.

A função foi um pouco além, permitindo janela acima de janela, acima de janela, acima de janela... e assim por diante...

Por favor Login ou se não possuir um conta Registre-se para ver o conteúdo escondido

 

 

CONSERTANDO SEUS ARQUIVOS MP3

Houve uma certa vez, que ocorreu um fato desconhecido e todos os meus arquivos MP3 ficaram "defeituosos".

Acredito que foi uma vírus que alterou alguma coisa no arquivo, e você ouvia a música, mas ela estava acelerada e com uns estalos esquisitos.

 

Enfim, quase deletei tudo, mas no final, acabei guardando...

 

Pesquisando aqui, ali, existe um executável que faz milagres, tira leite de pedra: o ffmpeg.exe

 

Esse cara faz tanta coisa, reduz vídeo, transforma vídeo em gif animado, converte ogg para mp3, faz mais coisas que bombril!

 

E resolvi testar nos meus arquivos MP3 defeituosos. Demorei até achar a configuração exata, mas achei, o script recursivo acima e recuperei todos os arquivos, segue o fonte:

 

Na verdade, ele monta um array dos arquivos da pasta "H:\__BACKUP\Mp3\" e replica em "D:\__BACKUP\Mp3\", mas você pode reconfigurar me qualquer outra pasta!

Por favor Login ou se não possuir um conta Registre-se para ver o conteúdo escondido

_ArrayDump

Crie um array 2D qualquer e depois rode veja o que acontece no _ArrayDump:

Por favor Login ou se não possuir um conta Registre-se para ver o conteúdo escondido

..


Editado por Luigi, 14 janeiro 2017 - 04:25 .


#2 mutleey

mutleey

    AutoIt MVP

  • AutoIt MVPs (MVP)
  • PipPipPip
  • 277 posts
  • LocationSão José do Rio Preto-SP

Postado 05 abril 2015 - 04:37

bacana a iniciativa...  :like_icon:



#3 Belini

Belini

    Administrador

  • Administradores (Adm)
  • PipPipPipPipPip
  • 2.204 posts
  • LocationMinas Gerais

Postado 06 abril 2015 - 12:10

Achei de grande utilidade o 1º e o 3º inclusive vou modificar o primeiro para substituir outros nomes nos meus includes, obrigado por compartilhar conosco!



#4 Sergio-F

Sergio-F

    Membro

  • Membros
  • Pip
  • 76 posts
  • LocationOsasco

Postado 10 abril 2015 - 02:22

A primeira eu resoveria com o Notepad++, mas vai ser bem útil para múltiplas substituições de comandos, é uma ótima ideia para quem mantem o autoit atualizado, aí seria só ficar de olho no changelog e acrescentar ao scripts as novas substituições.

 

As outras duas achei legais, gostei dos 3 scripts.


Editado por Sergio-F, 10 abril 2015 - 02:22 .


#5 JScript

JScript

    A cada dia que passa eu aprendo muito mais com todos vocês!

  • Administradores (Adm)
  • PipPipPipPipPip
  • 2.445 posts
  • LocationSomewhere out there!

Postado 21 abril 2015 - 10:28

O primeiro código atualizou vários scritps meus e isso foi uma verdadeira "mão na roda"!!! :600866:

 

5 *

 

JS



#6 Luigi

Luigi

    Administrador

  • Administradores (Adm)
  • PipPipPipPipPip
  • 601 posts
  • LocationCWB

Postado 09 maio 2015 - 08:46

04. Force_NumberString

O AutoIt não é uma linguagem com variáveis fortemente tipadas, com C, C++, Java.
Quero dizer, quando você define uma variável $var ela pode receber qualquer coisa:

a) inteiros: 1, 2, 20, 222, 4345

b ) zero: 0

c) boleanos: True, False

d) decimais: 1.01, 2.03, 3.04

e) string: "Está frio", "inverno"

f) array: [1,2,3], ["um", 2, "3"]

O tipo de dado que você pensar em armazenar em uma variável, será armazenado, e o AutoIt  não vai chiar por causa disso.

Mas as vezes, pode ser interessante forçar a tipagem da variável para não estourar as próximas linhas de código.

Não é sempre que isso acontece.

Em meus códigos (raríssimas vezes) eu fui obrigado a tipar a variável.
Como assim "tipar" a variável?
Forçar a variável para ela virar um número na marra, ou uma string.

Quando vou usar isso?
Um dos exemplos que eu uso, é quando salvo alguma configuração em arquivo INI.

 

Neste exemplo, eu crio uma variável $var, e atribuo o valor 0.1.

Então eu gravo o conteúdo em arquivo INI e recupero novamente.

Mesmo assim, ela é tipada como string, e não como float.

Por favor Login ou se não possuir um conta Registre-se para ver o conteúdo escondido

Existe uma maneira realmente muito simples de forçar a tipagem entre número e string, sem perder informação:

Uma comparação com sinais de iguais dobrados (==), então é comparado o valor, e o tipo da variável *:

Number($var) == String($var)

Se essa comparação for verdadeira, é um integer ou float.

Se for falsa, é uma string.

* A comparação utilizando apenas um sinal de =, compara somente o valor das variáveis:

Number($var) = String($var)

Por favor Login ou se não possuir um conta Registre-se para ver o conteúdo escondido

Executando o script acima, você vai perceber que a função Force_NumberString transforma a string "0.1" em um float 0.1.

 

Pra finalizar, como disse anteriormente, raramente você vai precisar se preocupar se a sua variável é integer ou string.

Mas "SE" isso acontecer, talvez isso resolva seu problema.

OBS: isso funciona com arrays e outras coisas?
Resposta: O fundamento da função 
Force_NumberString é trabalhar somente com números ou strings. Qualquer coisa diferente disso, talvez seja necessário uma itereção pra percorrer o array.

 


Editado por Luigi, 09 maio 2015 - 08:52 .


#7 Luigi

Luigi

    Administrador

  • Administradores (Adm)
  • PipPipPipPipPip
  • 601 posts
  • LocationCWB

Postado 12 maio 2015 - 06:08

05. Verificar se uma determinada fonte (.ttf ou .fon) existe no WIndows.

OBS: não é de minha autoria.

Por favor Login ou se não possuir um conta Registre-se para ver o conteúdo escondido


Editado por Luigi, 16 maio 2015 - 09:44 .


#8 Sergio-F

Sergio-F

    Membro

  • Membros
  • Pip
  • 76 posts
  • LocationOsasco

Postado 15 maio 2015 - 05:51

Para quem está afim de criar mensagens coloridas em seu programa de linha de comando, aqui vai um exemplo:
Compile e use no cmd do windows:
Exemplo:
ColorirConsole.exe 12 "Frase"
Vai mostrar a "Frase" em vermelho.
 
ColorirConsole.exe Tudo "Frase"
Vai mostra a palavra "Frase" com todas as cores.
  

Por favor Login ou se não possuir um conta Registre-se para ver o conteúdo escondido

 
Requer o Console.au3, não consigo postar por ser grande, então upei.

Por favor Login ou se não possuir um conta Registre-se para ver o conteúdo escondido


Editado por Sergio-F, 15 maio 2015 - 05:57 .


#9 Luigi

Luigi

    Administrador

  • Administradores (Adm)
  • PipPipPipPipPip
  • 601 posts
  • LocationCWB

Postado 16 maio 2015 - 09:15

@Sergio-F!
Testei aqui e é muito legal!

Inclusive sai com os acentos! Show de bola!

8D



#10 Luigi

Luigi

    Administrador

  • Administradores (Adm)
  • PipPipPipPipPip
  • 601 posts
  • LocationCWB

Postado 27 maio 2016 - 10:48

incluído "CONSERTANDO SEUS ARQUIVOS MP3"...


Editado por Luigi, 27 maio 2016 - 10:50 .


#11 Belini

Belini

    Administrador

  • Administradores (Adm)
  • PipPipPipPipPip
  • 2.204 posts
  • LocationMinas Gerais

Postado 27 maio 2016 - 11:02

Este aí vai ser muito útil prá mim, obrigado por compartilhar!



#12 augusto costa

augusto costa

    Novato

  • Membros
  • 3 posts
  • LocationRio de Janeiro

Postado 09 junho 2016 - 08:16

Muito útil...vlw



#13 IVAN

IVAN

    Novato

  • Membros
  • 2 posts
  • LocationPorto Alegre, RS

Postado 18 julho 2016 - 10:49

Um show cada vez aprendo mais valeu!



#14 AutoItCoder

AutoItCoder

    Moderador

  • Moderadores (Mod)
  • Pip
  • 24 posts
  • LocationBrasil do sul

Postado 18 agosto 2016 - 09:40

Minha contribuição, uma pequena variação de _ArrayAdd2D, mas para qualquer quantidade de itens...

Por favor Login ou se não possuir um conta Registre-se para ver o conteúdo escondido

Logicamente, se faltar parâmetros, basta adicionar mais:

 

$mOpt4 = Default, $mOpt5 = Default, $mOpt6 = Default, $mOpt7 = Default, $mOpt8 = Default) ; e assim por diante



#15 Manimal

Manimal

    Membro Nível 3

  • Administradores (Adm)
  • PipPipPipPip
  • 322 posts
  • LocationVideira/SC

Postado 19 agosto 2016 - 08:53

@AutoItCoder

 

Excelente.

 

Muito parecida com a minha, mas não conhecia o @NumParams! Já ajustei  :lol:

 

Sempre aprendendo! Show de bola!



#16 Luigi

Luigi

    Administrador

  • Administradores (Adm)
  • PipPipPipPipPip
  • 601 posts
  • LocationCWB

Postado 28 agosto 2016 - 08:12

Essa dica, diretamente não tem nada a ver com AutoIt...

 

Quem faz scripts com AutoIt há algum tempo, deve ter aquela pastinha...

 

Sim, aquela pasta onde você guarda todos os scripts que você acha interessante, aqueles exemplos que você já fez, e vai guardando... guardando... guardando...

 

Até que chega uma hora que você não acha mais nada, de tanta coisa que tem.

 

E chega um ponto que não adianta mais procurar pelo nome do arquivo.

 

Você sabe que em algum dos bilhões de scripts que você tem, há um script com uma determinada função ou nome de variável lá dentro...

 

"FRIO NA ESPINHA"

 

Então você lembra da busca do Windows...

 

Só que a busca do Windows é tão lenta quanto falta opção e não ajuda nada!

 

Seus problemas acabaram, uma solução das empresas Tabajara vai ajudar você! (kkkk)

 

Por favor Login ou se não possuir um conta Registre-se para ver o conteúdo escondido

 

Esse é um programa que eu uso há muitos anos, e a principal vantagem dele é:

Você pode pedir para ele vasculhar todos os arquivos *.au3 que contenham a palavra "TCPStartup" por exemplo, entre 10/08/2016 e 15/08/2016!

 

Fica a dica! ^^


Editado por Luigi, 28 agosto 2016 - 08:13 .


#17 Belini

Belini

    Administrador

  • Administradores (Adm)
  • PipPipPipPipPip
  • 2.204 posts
  • LocationMinas Gerais

Postado 28 agosto 2016 - 11:09


Esse é um programa que eu uso há muitos anos, e a principal vantagem dele é:

Você pode pedir para ele vasculhar todos os arquivos *.au3 que contenham a palavra "TCPStartup" por exemplo, entre 10/08/2016 e 15/08/2016!

 

Mas a função Find in Files não é a mesma coisa? Vc indica a pasta e ela procura arquivos .au3 na pasta e em subpastas a palavra que vc deseja!



#18 Manimal

Manimal

    Membro Nível 3

  • Administradores (Adm)
  • PipPipPipPip
  • 322 posts
  • LocationVideira/SC

Postado 28 agosto 2016 - 07:58

Show de bola Luigi!

 

Pessoalmente uso no meu micro, algumas ferramentas que selecionei ao longo do tempo...

 

Mas a combinação é que torna boa a brincadeira... Tudo free!

 

Por favor Login ou se não possuir um conta Registre-se para ver o conteúdo escondido

- pesquisa de arquivos e pastas super-rápida (mas super mesmo) em toda a máquina. Uso uma HotKey para chamar o programa e usar.

 

Por favor Login ou se não possuir um conta Registre-se para ver o conteúdo escondido

- para procurar no Explorer e File Boxes (útil com vários arquivos na mesma pasta). A parte legal é que integra sozinho no Explorer e outros gerenciadores de arquivos. Para usar é só abrir um janela de arquivos e começar a digitar!

 

Alternativa ao Everything, mas procura DENTRO dos arquivos:

Por favor Login ou se não possuir um conta Registre-se para ver o conteúdo escondido

- muito parecido com Everything mas com a opção de procura DENTRO dos arquivos

 

Meu preferido, pois além de procurar tem a opção de alterar os arquivos (estilo GREP / estilo Localizar e Substituir em vários arquivos)

Por favor Login ou se não possuir um conta Registre-se para ver o conteúdo escondido

- infelizmente esse é pago US$ 30

 

Para comparar 2 (dois) arquivos - excelente para achar as mudanças em fontes

Por favor Login ou se não possuir um conta Registre-se para ver o conteúdo escondido

- Mostra lado a lado as linhas modificadas com opção de mostrar a(s) próxima(s) diferença(s)

 

Putz! Quase esqueci do:

Por favor Login ou se não possuir um conta Registre-se para ver o conteúdo escondido

- gerenciador de clipboard. Sempre achei frescura esse negócio de "programa para gerenciar melhor o Clipboard", leia-se CTRL C e CTRL V, afinal era só copiar de novo o que vc queria e pronto. Mas depois que comecei a usar, me acostumei de tal jeito que não largo mais. Configurei para CTRL-SHIFT-V e é muito legal. Como está integrado ao Windows, use normalmente com CTRL C e CTRL V, mas se precisar de algum clipboard mais antigo, hotkey que abre a janela e vc pode escolher qual clipboard vc quer.


Editado por Manimal, 28 agosto 2016 - 08:09 .


#19 Luigi

Luigi

    Administrador

  • Administradores (Adm)
  • PipPipPipPipPip
  • 601 posts
  • LocationCWB

Postado 04 outubro 2016 - 12:17

uso avançado do _ArrayAdd()

 

Cenário: você possui uma string "um;dois;tres" e deseja dividir essa string a cada ";" e inserir cada elemento em um array;

Forma convencional:

Por favor Login ou se não possuir um conta Registre-se para ver o conteúdo escondido

Forma avançada:

Por favor Login ou se não possuir um conta Registre-se para ver o conteúdo escondido

Mas e se for com um Array[m][n]?

Cenário: você possui uma string "key1=value1;key2=value2;key3=value3", a cada ";" é um alinha, e o "=" separa a chave do valor
Forma convencional:

Por favor Login ou se não possuir um conta Registre-se para ver o conteúdo escondido

Forma avançada:

Por favor Login ou se não possuir um conta Registre-se para ver o conteúdo escondido

Logicamente, a iteração dos arrays entre a forma convencional e avançada é diferente:

Da forma normal você programa:

Por favor Login ou se não possuir um conta Registre-se para ver o conteúdo escondido

E na forma avançada você programa:

Por favor Login ou se não possuir um conta Registre-se para ver o conteúdo escondido

Essa é a única diferença, fora a economia de código.



#20 Luigi

Luigi

    Administrador

  • Administradores (Adm)
  • PipPipPipPipPip
  • 601 posts
  • LocationCWB

Postado 24 dezembro 2016 - 09:31

Depois que você baixa um vídeo do YouTube, e você quer converter para MP3:

 

Características:

  • utiliza bitrate de 320k
  • normaliza o volume para 6dB

 

Testado e funciona com:

  • MP4
  • WEBM

 

Pronto, você mesmo baixa e converte as suas MP3 com qualidade!

 

volume 10dB ficou ruim, tentei 6dB e ficou melhor.

 

 

Segue exemplo:

Por favor Login ou se não possuir um conta Registre-se para ver o conteúdo escondido

OBS: tem que baixar o ffmpeg.exe


Editado por Luigi, 24 dezembro 2016 - 10:10 .





0 usuário(s) está(ão) lendo este tópico

0 membro(s), 0 visitante(s) e 0 membros anônimo(s)

Documentação OnLine de referência