Tijd besparen door saaie taken te automatiseren met AutoHotkey
Heb je ooit dezelfde hersenloze taak steeds opnieuw moeten uitvoeren op je pc? In plaats van urenlang op knoppen te klikken en op toetsen te drukken, is dit het perfecte moment om uw AutoHotkey-vaardigheden te gebruiken om uw pc het werk voor u te laten doen.
Notitie: Dit specifieke exemplaar is een echt exemplaar dat ik eerder vandaag gebruikte om een kleine hoeveelheid tijd te besparen, maar dit zijn technieken die ik in de loop der jaren vele malen heb gebruikt om mijzelf dagenlang tijd te besparen..
Het scenario
Ik probeerde een aantal onjuiste uitzendberichten in ons e-mailnieuwsbriefaccount door te nemen en op te ruimen, toen ik me realiseerde dat hun interface me vereiste om handmatig op de knop Verwijderen te klikken en het vervolgens op elk bericht te bevestigen - we hebben het hier over 300 onjuiste berichten die moesten worden verwijderd. Tot overmaat van ramp is de interface extreem traag, wat betekent dat ik een goede 30-40 minuten zou hebben doorgebracht door gewoon te klikken en mijn carpaal tunnel nog erger te maken.
In plaats van dat te doen, heb ik een nieuw AutoHotkey-script gemaakt en heb ik snel een script geschreven om het werk voor mij te doen.
De eerste stap was om precies vast te stellen welke klikken en toetsen ik moest automatiseren - uiteraard is de eerste stap om op de X-knop te klikken, die dit bevestigingsdialoogvenster van Ajax naar voren brengt:
Gelukkig wordt de knop Verwijderen automatisch gemarkeerd, dus je kunt eenvoudig op de spatiebalk drukken om te bevestigen. Zodra het record is verwijderd, schuift alles op alsof de rij er nooit was. Als we dit weten, gaan we verder en maken we een script dat het klikken op de X-knop automatiseert, 3 seconden wacht op het bevestigingsvenster, op de spatiebalk drukt en nog 3 seconden wacht totdat de rij verdwijnt.
Het script maken
Het eerste dat we willen doen is een lus maken die dezelfde acties een aantal keer herhaalt - in dit geval schatten we dat we dit 300 keer moeten herhalen, dus we gebruiken de Loop syntaxis als dit:
Loop 300
Nu moeten we de klikactie automatiseren, wat eenvoudig is in AutoHotkey: u typt gewoon Klik. U kunt desgewenst een geavanceerdere kliksyntaxis gebruiken, precies kiezen waar u op het scherm wilt klikken of klikken op de knop. Voor onze doeleinden gebruiken we de standaard, wat ons hierbij laat:
Loop 300
Klik
Nu zal ons script 300 keer achter elkaar klikken, maar helaas hebben we die bevestigingsdialoog om mee om te gaan, dus nu zullen we de Verzendfunctie gebruiken om de Spatiebalk toetsaanslag naar het actieve venster te sturen.
Loop 300
Klik
Stuur, spatie
Als u naar de documentatie kijkt, ziet u de syntaxis voor speciale toetsen - normale toetsaanslagen kunnen normaal worden ingevoerd, bijvoorbeeld als u wilt typen test en eindig het met een spatie, dan zou je dit gebruiken:
Verzenden, test Space
Dus nu hebben we een script dat op de knop klikt en vervolgens de spatiebalk raakt, wat in orde zou zijn, behalve dat de interface traag is, dus we moeten een kleine pauze invoegen tussen elke uitvoering van de klik- en verzendfuncties. Om dit te bereiken, gebruiken we de slaapfunctie, die maar één argument nodig heeft: de vertraging in milliseconden.
Loop 300
slaap 3000
Klik
slaap 3000
Stuur, spatie
Nu hebben we een script dat de items met succes verwijdert, 3 seconden wacht voordat het wordt gestart, zodat je de muiscursor over de eerste X kunt bewegen, op de knop kunt klikken, 3 seconden kunt wachten, op de spatiebalk kunt drukken en vervolgens kunt wachten 3 seconden voordat het door de volgende set gaat. Je zou dit eenvoudige script nu kunnen gebruiken als je dat zou willen, maar wat als je het script wilt stoppen?
Wat we zullen doen is de GetKeyState-functie gebruiken om te controleren of je een bepaalde sleutel hebt geraakt-voor testen, we zullen de F8-sleutel gebruiken en het volgende toevoegen in het midden van de lus. Hiermee wordt gedetecteerd of de F8-toets is ingedrukt en gebruikt u vervolgens de pauze om de lus te verlaten.
GetKeyState, state, F8
indien staat = D
breken
Het definitieve script
Hier is het laatste script allemaal in elkaar gezet, wat waarschijnlijk niet al te veel zal helpen omdat het specifiek is voor mijn scenario, maar je kunt het gebruiken om je eigen scripts te maken door simpelweg de klikken en toetsaanslagen te wijzigen.
Loop 300
GetKeyState, state, F8
indien staat = D
breken
slaap 3000
Klik
slaap 3000
Verzenden, Spatie
terugkeer
Om te illustreren hoe dit in de praktijk werkt, hier is een korte video die het in actie laat zien:
In dit specifieke scenario kostte het me ongeveer 3 minuten om een bewerkte scripttijd bij elkaar te sparen: 27 minuten. Net genoeg tijd voor mij om de video op te nemen en dit artikel te schrijven!