If-Koubou

Как да спестите време чрез автоматизиране на досадни задачи с AutoHotkey

Как да спестите време чрез автоматизиране на досадни задачи с AutoHotkey (Как да)

Били ли сте някога трябва да изпълнявате същата безсмислена задача отново и отново на вашия компютър? Вместо да губите часове за натискане на бутони и натискане на клавиши, това е идеалното време да използвате уменията си AutoHotkey, за да накарате компютъра да свърши работата за вас.

Забележка: Този конкретен пример е истински, който използвах по-рано днес, за да спестя малко време, но това са техники, които съм използвал много пъти през годините, за да спестя буквално дни, които струват време.

Сценарият

Опитвах се да преминем и да изчистим куп неправилни излъчвани съобщения в нашия имейл бюлетин, когато разбрах, че техният интерфейс ми наложи да натиснем ръчно бутона за изтриване и след това да го потвърдя на всяко съобщение - става дума за 300 неточни съобщения, които трябваше да бъдат изтрити. За да направят нещата още по-лоши, интерфейсът е изключително бавен, което означава, че щях да прекарам хубави 30-40 минути, просто щракване и да направя карпалния тунел още по-зле.

Вместо да правя това, създадох нов скрипт AutoHotkey и бързо написах скрипт, който да свърши работата за мен.

Първата стъпка беше да се идентифицират точно кои кликвания и клавиши имах нужда да се автоматизират - очевидно първата стъпка е да кликнете върху бутона X, който извежда този диалогов прозорец за потвърждение на Ajax:

За щастие бутонът "Изтриване" автоматично се осветява, така че можете просто да натиснете клавиша за интервал, за да потвърдите. След като записът бъде изтрит, всичко се плъзга, сякаш редът никога не е бил там. Познавайки това, ще продължим да създаваме скрипт, който автоматизира кликването върху бутона X, чакайки 3 секунди за диалоговия прозорец за потвърждение, натиснете интервала за интервал и след това изчаквате още 3 секунди, за да изчезне редът.

Създаване на скрипта

Първото нещо, което искаме да направим, е да създадем цикъл, който да повтаря едни и същи действия няколко пъти - в този случай оценяваме, че ще трябва да повторим това 300 пъти, затова ще използваме Loop този синтаксис:

Loop 300

Сега ще трябва да автоматизираме действието за кликване, което е лесно в AutoHotkey - просто напишете кликване, Можете да използвате по-усъвършенстван синтаксис за кликване, ако искате, като изберете точно къде искате да кликнете върху екрана или изберете бутона за кликване. За нашите цели, ние просто ще използваме по подразбиране, което ни оставя с това:

Loop 300

кликване

Сега нашият скрипт ще кликне 300 пъти подред, но за съжаление имаме този диалогов прозорец за потвърждение, така че сега ще използваме функцията "Изпращане", за да изпратим клавиша за интервал на интервала в активния прозорец.

Loop 300

кликване
Изпрати пространство

Ако погледнете в документацията, ще видите целия синтаксис за специални клавиши - обикновените натискания на клавишите могат да бъдат въведени нормално - например, ако искате да въведете тест и след това го завършете с интервал, бихте използвали следното:

Изпратете, тествайте Space

Така че сега имаме скрипт, който кликва върху бутона и след това натиска интервала, което ще е наред, освен ако интерфейсът е бавен, така че трябва да въведете малка пауза между всяко изпълнение на функциите за кликване и изпращане. За да постигнем това, ще използваме функцията за сън, която отнема само един аргумент - закъснението в милисекунди.

Loop 300

сън 3000
кликване
сън 3000
Изпрати пространство

Сега имаме скрипт, който ще изтрие успешно елементите, чакайки 3 секунди преди да стартира, така че да можете да преместите курсора на мишката над първия X, да кликнете върху бутона, да чакате 3 секунди, да натиснете интервала и след това да чакате 3 секунди преди да премине през следващия набор. Можете да използвате този прост скрипт точно сега, ако искате - но какво, ако искате да спрете скрипта?

Това, което ще направим, е да използвате функцията GetKeyState, за да проверите дали сте ударили определен ключ - за тестване, ще използваме клавиша F8 и ще добавим следното в средата на цикъла. Това ще установи дали е натиснат клавиша F8, а след това използвайте прекъсването, за да излезете от цикъла.

GetKeyState, състояние, F8
ако състоянието = D
почивка

Крайният скрипт

Ето финалния скрипт, който може да не ви помогне твърде много, тъй като е специфичен за моя сценарий, но можете да го използвате, за да създадете собствени скриптове, като просто промените изпращането на кликвания и натискания на клавиши.

Loop 300

GetKeyState, състояние, F8
ако състоянието = D
почивка
сън 3000
кликване
сън 3000
Изпратете Space

връщане

За да илюстрираме как работи това на практика, ето един бърз видеоклип, който го показва в действие:

В този конкретен сценарий ми отнеха около 3 минути, за да събера заедно работещ скрипт за време: 27 минути. Само достатъчно време за мен да запиша видеото и да напиша тази статия!