10Aug
Har du noen gang trengt å utføre den samme tankeløse oppgaven om og om igjen på PCen din? I stedet for å kaste bort timer klikke knapper og trykke på taster, er dette den perfekte tiden til å bruke AutoHotkey-ferdighetene dine for å få PCen til å gjøre jobben for deg.
Merk: Dette spesielle eksempelet er en ekte som jeg brukte tidligere i dag for å spare litt tid, men det er teknikker jeg har brukt mange ganger gjennom årene for å bokstavelig talt spare meg dager verdt tid.
Scenarioet
Jeg prøvde å gå gjennom og rydde ut en rekke feil sendte meldinger i vårt nyhetsbrev konto da jeg skjønte at grensesnittet deres krever at jeg manuelt klikker på Slett-knappen og bekrefter det på hver eneste melding -re snakker om 300 feil meldinger som måtte slettes. For å gjøre saken verre, er grensesnittet ekstremt sakte, noe som betyr at jeg ville ha brukt en god 30-40 minutter bare å klikke og gjøre min karpaltunnel enda verre.
I stedet for å gjøre det, opprettet jeg et nytt AutoHotkey-skript og skrev raskt et skript for å gjøre jobben for meg.
Det første trinnet var å identifisere nøyaktig hvilke klikk og nøkler jeg trengte å automatisere. Åpenbart er det første trinnet å klikke på X-knappen, som bringer opp denne Ajax-bekreftelsesdialogboksen:
Heldigvis blir Slett-knappen automatisk uthevet, slik at du enkelt kantrykk Space-tasten for å bekrefte. Når platen er slettet, glir alt opp som om raden aldri var der.Å vite dette, vil vi fortsette og lage et skript som automatiserer klikke på X-knappen, venter 3 sekunder for bekreftelsesdialogboksen, trykker på mellomromstasten og venter deretter ytterligere 3 sekunder for at rækken skal forsvinne.
Opprette skript
Det første vi vil gjøre er å lage en sløyfe som gjentar de samme handlingene flere ganger. I dette tilfellet anslår vi at vi må gjenta dette 300 ganger, så viJeg vil bruke Loop-syntaksen som denne:
Loop 300
{
}
Nå må vi automatisere klikkaksjonen, som er lett i AutoHotkey-du skriver bare klikk .Du kan bruke en mer avansert klikksyntax hvis du vil, velge nøyaktig hvor du vil at den skal klikke på skjermen, eller velge knappeklikk. For våre formål vil vi bare bruke standard, som gir oss følgende:
Loop 300
{
klikk
}
Nå vil vårt skript klikke 300 ganger på rad, men dessverre har vi den bekreftelsesdialogboksen tilhåndtere, så nå bruker vi Send-funksjonen til å sende mellomromstasten til det aktive vinduet.
Loop 300
{
klikk
Send,{ Space}
}
Hvis du ser på dokumentasjonen, vil du se hele syntaksen for spesielle taster. Vanlige tastetrykk kan angis normalt, for eksempel hvis du vil skrive test og avslutt den deretter med et mellomrom, du vil bruke dette:
Send, test{ Space}
Så nå har vi et skript som klikker på knappen og deretter treffer mellomromstasten, noe som ville være bra, bortsett fra grensesnitteter treg, så vi må sette inn en liten pause mellom hver utførelse av klikk- og sendfunksjonene. For å oppnå dette, bruker vi Sleep-funksjonen, som bare tar ett argument - forsinkelsen i millisekunder.
Loop 300
{
søvn 3000
klikk
søvn 3000
Send,{ Space}
}
Nå har vi et skript som vellykket sletter elementene, venter 3 sekunder før det starter slik at du kan flytte musemarkørenover den første X, klikker på knappen og venter 3 sekunder, trykker på mellomromstasten og venter deretter 3 sekunder før den går gjennom neste sett. Du kan bruke dette enkle skriptet akkurat nå hvis du ville - men hva hvis du vil stoppe skriptet?
Hva vi skal gjøre er å bruke GetKeyState-funksjonen for å sjekke om du har tastet en bestemt nøkkel til testing, vi bruker F8-tasten og legger til følgende i midten av løkken. Dette vil oppdage om F8-tasten er trykket, og bruk deretter pause for å avslutte sløyfen.
GetKeyState, state, F8
hvis tilstand = D
pause
Det endelige skriptet
Her er det endelige skriptet som er satt sammen, som sannsynligvis ikke vil hjelpe deg for mye siden det er spesifikt for mitt scenario - men du kan bruke det til å lage dinegne skript ved ganske enkelt å endre klikk og tastetrykk sending.
Loop 300
{
GetKeyState, tilstand, F8
hvis tilstand = D
pause
søvn 3000
klikk
søvn 3000
Send,{ Space}
}
Retur
For å illustrere hvordan dette fungerer i praksis, er det en rask video somviser det i aksjon:
I dette spesielle scenariet tok det omtrent 3 minutter å kaste sammen en fungerende script-tid lagret: 27 minutter. Bare nok tid for meg å ta opp videoen og skrive denne artikkelen!