10Aug

Så här sparar du tid genom att automatisera tråkiga uppgifter med AutoHotkey

click fraud protection

Har du någonsin behövt utföra samma tanklös uppgift om och om igen på din dator? Istället för att slösa bort klickknapparna och slå knappar, är det här den perfekta tiden att använda din AutoHotkey-kompetens för att göra din dator gör arbetet för dig.

Obs! Detta speciella exempel är en riktig som jag använde tidigare idag för att spara lite tid, men det här är tekniker som jag har använt många gånger under åren för att bokstavligen spara mig dagars värdesättning.

Scenariot

Jag försökte gå igenom och städa bort en massa felmeddelanden i vårt e-postkonto när jag insåg att deras gränssnitt krävde att jag manuellt klickade på Delete-knappen och bekräfta sedan på varje enskilt meddelande - vi "talar om 300 felaktiga meddelanden som behövde raderas. För att göra saken värre är gränssnittet extremt långsamt vilket betyder att jag skulle ha spenderat en bra 30-40 minuter, bara att klicka och göra min karpaltunnel ännu värre.

I stället för att göra det skapade jag ett nytt AutoHotkey-skript och skrev snabbt ett skript för att göra arbetet för mig.

instagram viewer

Det första steget var att identifiera exakt vilka klick och nycklar jag behövde för att automatisera. Det är uppenbarligen att det första steget är att klicka på X-knappen, vilket ger denna Ajax-bekräftelsesdialog:

Lyckligtvis lyser Delete-knappen automatiskt så du kan helt enkelttryck på mellanslag för att bekräfta. När posten har tagits bort glider allt som om raden aldrig var där. Genom att veta detta fortsätter vi och skapar ett skript som automatiserar att klicka på X-knappen, väntar 3 sekunder för bekräftelsedialogen, trycker på mellanslagstangenten och väntar sedan ytterligare 3 sekunder innan raden försvinna.

Skapa skript

Det första vi vill göra är att skapa en slinga som repeterar samma åtgärder flera gånger. I det här fallet uppskattar vi att vi måste repetera det 300 gånger så vikommer att använda Loop-syntaxen så här:

Loop 300
{

}

Nu måste vi automatisera klickåtgärden, som är lätt i AutoHotkey-du skriver bara klicka .Du kan använda en mer avancerad klicksyntax om du vill, väljer exakt var du vill att den ska klicka på skärmen eller välja knappen klicka. För våra ändamål använder vi bara standardvärdet, vilket lämnar oss med följande:

Loop 300
{
klicka
}

Nu kommer vårt skript att klicka 300 gånger i rad, men tyvärr har vi den här bekräftelsedialogen tillhantera, så nu ska vi använda Send-funktionen för att skicka mellanslagstangenten till det aktiva fönstret.

Loop 300
{
klicka
Skicka,{ Space}
}

Om du tittar på dokumentationen ser du all syntax för specialtangenter - vanliga tangenttryckningar kan skrivas in normalt, till exempel om du vill skriva test och avsluta det med ett mellanslag, så använder du det här:

Skicka, test{ Space}

Så nu har vi ett manus som klickar på knappen och sedan träffar mellanslagstangenten, vilket skulle vara bra utom gränssnittetär långsam, så vi måste infoga en liten paus mellan varje körning av klick- och sändningsfunktionerna. För att uppnå detta använder vi Sleep-funktionen, som bara tar ett argument - fördröjningen i millisekunder.

Loop 300
{
sova 3000
klicka
sova 3000
Skicka,{ Space}
}

Nu har vi ett skript som framgångsrikt tar bort objekten och väntar 3 sekunder innan det börjar så att du kan flytta muspekarenöver den första X-knappen, klicka på knappen och väntar i 3 sekunder, tryck på mellanslagstangenten och vänta sedan 3 sekunder innan den går igenom nästa uppsättning. Du kan använda det här enkla skriptet just nu om du ville-men vad om du vill stoppa manuset?

Vad vi ska göra är att använda GetKeyState-funktionen för att kontrollera om du har träffat en viss nyckel-för testning, vi använder F8-tangenten och lägger till följande i mitten av slingan. Detta kommer att upptäcka om F8-tangenten har tryckts och använd sedan brytningen för att avsluta slingan.

GetKeyState, state, F8
om state = D
break

Slutskriptet

Här är det slutliga skriptet alla sammanfogade, vilket förmodligen inte hjälper dig för mycket eftersom det är specifikt för mitt scenario - men du kan använda den för att skapa dinegna skript genom att helt enkelt ändra klick och knapptryckning sändning.

Loop 300
{
GetKeyState, tillstånd, F8
om tillstånd = D
paus
sova 3000
klicka
sova 3000
Skicka,{ Space}
}
Återgå

För att illustrera hur det här fungerar i praktiken är det en snabb video somvisar det i åtgärd:

I det här scenariot tog det mig ungefär 3 minuter att kasta ihop en arbetsskriptid som sparades: 27 minuter. Bara tillräckligt med tid för att spela in videon och skriva den här artikeln!