10Aug

Sådan sparer du tid ved at automatisere kedelige opgaver med AutoHotkey

Har du nogensinde haft brug for at udføre den samme tankeløse opgave igen og igen på din pc? I stedet for at spilde tid på klikknapper og trykke på nøgler, er dette den perfekte tid til at bruge dine AutoHotkey-færdigheder til at gøre din pc til at gøre arbejdet for dig.

Bemærk: Dette særlige eksempel er en rigtig, som jeg brugte tidligere i dag for at spare lidt tid, men det er teknikker, som jeg har brugt mange gange gennem årene for at bokstaveligt talt spare mig værdier for tid.

Scenario

Jeg forsøgte at gå igennem og rense en masse ukorrekte udsendelsesmeddelelser i vores email nyhedsbrev konto, da jeg indså, at deres grænseflade krævede mig manuelt at klikke på knappen Slet og derefter bekræfte det på hver enkelt besked - vi 'Taler om 300 forkerte meddelelser, der skulle slettes. For at gøre sager værre, er grænsefladen ekstremt langsom, hvilket betyder, at jeg ville have brugt en god 30-40 minutter bare ved at klikke og gøre min karpaltunnel endnu værre.

I stedet for at gøre det, oprettede jeg et nyt AutoHotkey-script og skrev hurtigt et script til at udføre arbejdet for mig.

Det første skridt var at identificere præcis hvilke klik og nøgler jeg havde brug for at automatisere. Selvfølgelig er det første skridt at klikke på X-knappen, der bringer denne Ajax-bekræftelsesdialog op:

Heldigvis er Slet-knappen automatisk markeret, så du kan simpelthenTryk på mellemrumstasten for at bekræfte. Når optagelsen er slettet, glider alt op som om rækken aldrig var der. Ved at kende dette fortsætter vi og skaber et script, der automatiserer klikke på X-knappen, venter 3 sekunder for bekræftelsesdialogboksen, trykker på mellemrumstasten og venter derefter endnu 3 sekunder for rækken forsvinder.

Oprettelse af scriptet

Det første, vi vil gøre, er at skabe en loop, der gentager de samme handlinger en række gange. I dette tilfælde vurderer vi, at vi skal gentage dette 300 gange, så viJeg vil bruge Loop-syntaksen som denne:

Loop 300
{

}

Nu skal vi automatisere klikhandlingen, som er let i AutoHotkey-du skriver bare klik .Du kan bruge en mere avanceret kliksyntax, hvis du vil, ved at vælge præcis, hvor du vil have det, at klikke på skærmen eller vælge klik på knappen. For vores formål bruger vi bare standard, som efterlader os med dette:

Loop 300
{
klik
}

Nu vil vores script klikke 300 gange i træk, men desværre har vi den bekræftelsesdialog tilhåndtere, så nu bruger vi Send-funktionen til at sende mellemrumstastet til det aktive vindue.

Loop 300
{
klik
Send,{ Space}
}

Hvis du ser på dokumentationen, kan du se hele syntaksen for specielle taster. Der kan indtastes almindelige tastetryk normalt, for eksempel hvis du vil skrive test og derefter afslutte det med et mellemrum, skal du bruge dette:

Send, test{ Space}

Så nu har vi et script, der klikker på knappen og derefter rammer mellemrumstasten, hvilket ville være okay bortset fra grænsefladener langsom, så vi skal indsætte en lille pause mellem hver udførelse af klik- og sendfunktionerne. For at opnå dette bruger vi Sleep-funktionen, som kun tager et argument - forsinkelsen i millisekunder.

Loop 300
{
søvn 3000
klik
søvn 3000
Send,{ Space}
}

Nu har vi et script, der med succes vil slette genstandene og vente 3 sekunder før det starter, så du kan flytte musemarkørenover den første X, klikker på knappen og venter 3 sekunder, rammer rumlinjen og venter derefter 3 sekunder, inden den går gennem det næste sæt. Du kunne bruge dette enkle script lige nu, hvis du ville - men hvad nu hvis du vil stoppe scriptet?

Hvad vi skal gøre er at bruge GetKeyState-funktionen til at kontrollere, om du har ramt en bestemt nøgle til testning, vi bruger F8-tasten og tilføjer følgende til midten af ​​sløjfen. Dette vil registrere, om F8-tasten er blevet trykket, og brug derefter pause for at afslutte sløjfen.

GetKeyState, state, F8
hvis tilstand = D
pause

Det endelige script

Her er det endelige script, som alle sammen sætter sammen, hvilket nok ikke hjælper dig for meget, da det er specifikt for mit scenario - men du kan bruge det til at oprette dinegne scripts ved blot at ændre klik og tastetryk afsendelse.

Loop 300
{
GetKeyState, tilstand, F8
hvis tilstand = D
pause
søvn 3000
klik
søvn 3000
Send,{ Space}
}
Retur

For at illustrere, hvordan dette virker i praksis, er det en hurtig video atviser det i aktion:

I dette særlige scenario tog det mig ca. 3 minutter at kaste sammen en fungerende script-tid gemt: 27 minutter. Bare nok tid til mig til at optage videoen og skrive denne artikel!