10Aug

Come risparmiare tempo automatizzando Tedious Tasks con AutoHotkey

Hai mai avuto bisogno di eseguire sempre lo stesso compito senza cervello sul tuo PC?Invece di perdere ore facendo clic sui pulsanti e premendo i tasti, questo è il momento perfetto per utilizzare le tue abilità AutoHotkey per fare in modo che il tuo PC lavori per te.

Nota: Questo particolare esempio è un esempio reale che ho usato in precedenza oggi per risparmiare un po 'di tempo, ma queste sono tecniche che ho usato molte volte nel corso degli anni per salvarmi letteralmente per un periodo di tempo.

Scenario

Stavo cercando di risolvere e cancellare una serie di messaggi di trasmissione errati nel nostro account di newsletter, quando mi sono reso conto che la loro interfaccia mi richiedeva di fare clic manualmente sul pulsante Elimina e quindi confermare su ogni singolo messaggio: noiSto parlando di 300 messaggi errati che dovevano essere cancellati. A peggiorare le cose, l'interfaccia è estremamente lenta, il che significa che avrei trascorso ben 30-40 minuti facendo clic e rendendo il mio tunnel carpale ancora peggio.

Invece di farlo, ho creato un nuovo script AutoHotkey e rapidamente ho scritto uno script per fare il lavoro per me.

Il primo passo è stato identificare esattamente quali clic e tasti avessi bisogno di automatizzare, ovviamente il primo passo è fare clic sul pulsante X, che apre la finestra di conferma di Ajax:

Fortunatamente il pulsante Elimina è evidenziato automaticamente, quindi puoi semplicementepremi il tasto Spazio per confermare. Una volta che il record è stato cancellato, tutto scorre come se la riga non fosse mai stata lì.Sapendo questo, passeremo e creeremo uno script che si automatizza facendo clic sul pulsante X, aspettando 3 secondi per la finestra di conferma, pigiando sulla barra spaziatrice, e quindi aspettando altri 3 secondi affinché la riga scompaia.

Creazione dello script

La prima cosa che vorremmo fare è creare un ciclo che ripeterà le stesse azioni un certo numero di volte, in questo caso, stimiamo che dovremo ripetere questa operazione per 300 volte, quindiuserò la sintassi Loop come questa:

Loop 300
{

}

Ora avremo bisogno di automatizzare l'azione click, che è semplice in AutoHotkey: basta digitare e fare clic su .Se lo desideri, puoi utilizzare una sintassi dei clic più avanzata, scegliendo esattamente dove vuoi che faccia clic sullo schermo o scegliendo il clic sul pulsante. Per i nostri scopi, useremo solo il valore predefinito, che ci lascia questo:

Loop 300
{
clic
}

Ora il nostro script farà clic su 300 volte di seguito, ma sfortunatamente abbiamo la finestra di conferma peraffrontare, quindi ora useremo la funzione Invia per inviare la barra della barra spaziatrice alla finestra attiva.

Loop 300
{
fare clic su
Invia,{ Spazio}
}

Se si esamina la documentazione, verrà visualizzata tutta la sintassi per le chiavi speciali: è possibile immettere normalmente le sequenze di tasti normali, ad esempio, se si desidera digitare prova e poi lo termina con uno spazio, dovresti usare questo:

Invia, prova{ Spazio}

Quindi ora abbiamo uno script che fa clic sul pulsante e poi colpisce la barra spaziatrice, che andrebbe bene eccetto l'interfacciaè lento, quindi dobbiamo inserire una piccola pausa tra ogni esecuzione del clic e inviare le funzioni. Per fare ciò, useremo la funzione Sleep, che accetta solo un argomento, il ritardo in millisecondi.

Loop 300
{
sleep 3000
fare clic su
sleep 3000
Invia,{ Space}
}

Ora abbiamo uno script che cancellerà correttamente gli elementi, aspettando 3 secondi prima che inizi in modo da poter spostare il cursore del mousesulla prima X, facendo clic sul pulsante, aspettando 3 secondi, colpendo la barra spaziatrice, e quindi aspettando 3 secondi prima di passare attraverso il set successivo. Potresti usare questo semplice script in questo momento, se lo volessi, ma cosa succederebbe se volessi interrompere lo script?

Quello che faremo è utilizzare la funzione GetKeyState per verificare se hai colpito una determinata chiave, per testare, useremo il tasto F8 e aggiungeremo quanto segue nel mezzo del ciclo. Questo rileverà se il tasto F8 è stato premuto, e quindi usa l'interruzione per uscire dal ciclo.

GetKeyState, stato, F8
se stato = D
interrompe

The Final Script

Ecco lo script finale tutto messo insieme, che probabilmente non ti aiuterà troppo dato che è specifico per il mio scenario, ma puoi usarlo per creare il tuoi propri script semplicemente modificando i clic e l'invio dei tasti.

Loop 300
{
GetKeyState, stato, F8
se stato = D
interrompe
sleep 3000
clic
sleep 3000
Invia,{ Spazio}
}
Restituisce

Per illustrare come funziona in pratica, ecco un rapido video chelo mostra in azione:

In questo particolare scenario, mi ci sono voluti circa 3 minuti per mettere insieme un copione di tempo di lavoro risparmiato: 27 minuti. Giusto il tempo per me di registrare il video e scrivere questo articolo!