Hur man sparar tid genom att automatisera tråkiga uppgifter med AutoHotkey
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 till att fungera för dig.
Notera: Det här speciella exemplet ä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 dagar värda tid.
Scenariot
Jag försökte gå igenom och städa bort en massa felmeddelanden i vårt nyhetsbrev konto när jag insåg att deras gränssnitt krävde att jag manuellt klickade på knappen Radera och bekräfta sedan på varje enskilt meddelande - vi pratar om 300 Felaktiga meddelanden som måste 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 sämre.
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.
Det första steget var att identifiera exakt vilka klick och nycklar jag behövde för att automatisera. Självklart är det första steget att klicka på X-knappen, vilket ger denna Ajax-bekräftelsedialog:
Lyckligtvis markeras Ta bort-knappen automatiskt, så du kan helt enkelt slå på mellanslag för att bekräfta. När posten har raderats 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äftelsedialogrutan, trycker på mellanslagstangenten och väntar sedan ytterligare 3 sekunder för att raden ska försvinna.
Skapa skriptet
Det första vi vill göra är att skapa en slinga som repeterar samma åtgärder ett antal gånger. I det här fallet uppskattar vi att vi måste repetera det 300 gånger, så vi använder Loop syntax så här:
Loop 300
Nu måste vi automatisera klickåtgärden, vilket är enkelt i AutoHotkey-du skriver bara in klick. 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
klick
Nu kommer vårt skript att klicka 300 gånger i rad, men tyvärr har vi den bekräftelsedialogruta för att hantera, så nu använder vi Send-funktionen för att skicka mellanslagstangenten till det aktiva fönstret.
Loop 300
klick
Skicka Space
Om du tittar på dokumentationen ser du hela syntaxen för specialnycklar. Vanliga tangenttryckningar kan skrivas in normalt, till exempel om du vill skriva testa och avsluta det med ett utrymme, skulle du använda det här:
Skicka, testa Space
Så nu har vi ett skript som klickar på knappen och sedan träffar mellanslagstangenten, vilket skulle vara bra, förutom att gränssnittet är långsamt, så måste vi infoga en liten paus mellan varje körning av klick- och sändningsfunktionerna. För att uppnå detta använder vi sömnfunktionen, som bara tar ett argument - fördröjningen i millisekunder.
Loop 300
sova 3000
klick
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änta 3 sekunder, slå på mellanslagstangenten och vänta 3 sekunder innan det 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 pausen för att avsluta slingan.
GetKeyState, state, F8
om tillståndet = D
ha sönder
Slutskriptet
Här är det sista skriptet som sammanställs, 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 egna skript genom att helt enkelt ändra klick och tangenttryckning.
Loop 300
GetKeyState, state, F8
om tillståndet = D
ha sönder
sova 3000
klick
sova 3000
Skicka, Space
Lämna tillbaka
För att illustrera hur det här fungerar i praktiken, här är en snabb video som visar den i åtgärd:
I det här scenariot tog det mig ungefär 3 minuter att kasta samman en fungerande manus för skript: 27 minuter. Bara tillräckligt med tid för att spela in videon och skriva den här artikeln!