[AutoHotkey v2] - Script para manipular textos

Compartilhe seus scripts, funções, ferramentas e programas

Moderator: Gio

Post Reply
pedro45_vs
Posts: 39
Joined: 28 Jun 2020, 18:46

[AutoHotkey v2] - Script para manipular textos

Post by pedro45_vs » 06 Feb 2023, 12:41

Na rotina de um escritório é muito comum nos depararmos com um texto que está todo em CAIXA ALTA, mas que é bem rude de se enviar em uma conversa por mensagem. Ao copiar informações de um programa para outro através do {ctrl + c} {ctrl + v} frequentemente precisamos converter isso e nem sempre é algo rápido de se fazer se for um trecho longo.

Outra função é quando você precisa remover pontos e traços de um número CPF ou CNPJ, para colar em um programa que não permite digitar esses caracteres. Ou quem sabe remover os espaços entre os números de uma chave de acesso da nota eletrônica...

Pois bem, pensando em facilitar minha rotina e a de meus colegas, fiz este script simples, porém bastante útil no meu dia a dia.

Code: Select all

#Requires AutoHotKey v2.0

; Selecione algum texto em qualquer programa, seja o navegador, editor de texto, formulários, Excel, Word, Emissor de nota, etc...
; Clique com o botão do meio do mouse (rodinha) para mostrar o menu com as opções.
; Selecione a opção desejada e o texto será colado com a formatação escolhida.

TraySetIcon("shell32.dll", 75)

#HotIf
; A tecla de atalho pode ser mudada facilmente sem alterar o funcionamento do script!
Mbutton::
{
    ; Coleta o ID da última janela que será usado para forçá-la a permanecer ativa antes de colar o texto formatado
    global ActiveHwnd := WinExist("A")
    Send "{Ctrl Down}c{Ctrl Up}"
    ClipWait 1, 0

    cmenu := Menu()
    cmenu.add("Converter para MAIÚSCULAS", maiusculas)
    cmenu.SetIcon("Converter para MAIÚSCULAS", "shell32.dll", 75)
    cmenu.add("Converter para minúsculas", minusculas)
    cmenu.SetIcon("Converter para minúsculas", "shell32.dll", 75)
    cmenu.add("Converter Para Modo Título", titulos)
    cmenu.SetIcon("Converter Para Modo Título", "shell32.dll", 75)
    cmenu.add("Converter para modo frase", frases)
    cmenu.SetIcon("Converter para modo frase", "shell32.dll", 75)
    cmenu.add("Remover espaços e pontuação", remover_pontuacao)
    cmenu.SetIcon("Remover espaços e pontuação", "shell32.dll", 75)
    cmenu.Show()
    Send "{MButton up}"
}

; Cola o texto da área de transferência mudando para MAIÚSCULAS
maiusculas(*)
{
    WinActivate ActiveHwnd
    SendInput StrUpper(A_Clipboard)
}

; Cola o texto da área de transferência mudando para minúsculas
minusculas(*)
{
    WinActivate ActiveHwnd
    SendInput StrLower(A_Clipboard)
}

; Cola o texto da área de transferência mudando para modo título
; (cada palavra com a primeira letra maiúscula)
titulos(*)
{
    WinActivate ActiveHwnd
    SendInput StrTitle(A_Clipboard)
}

; Cola o texto da área de transferência mudando para modo frase
frases(*)
{
    WinActivate ActiveHwnd
    SendInput modofrase(A_Clipboard)

    modofrase(str)
    {
        return StrUpper(SubStr(str, 1, 1)) StrLower(SubStr(str, 2))
    }
}

; Cola o texto da area de transferencia limpando pontos, traços, barras, espaços, tabulações e "R$"
remover_pontuacao(*)
{
    WinActivate ActiveHwnd
    SendInput RegExReplace(A_Clipboard, "([\(\):;./-\s\n]*|R\$)")
}

Post Reply

Return to “Scripts e Funções”