Как да спестим време чрез автоматизиране на сложните задачи с AutoHotkey
Трябва ли някога да изпълняваш същата безсмислена задача отново и отново на компютъра? Вместо да губите часове с натискане на бутони и натискане на бутони, това е идеалният момент да използвате уменията си в AutoHotkey, за да направите компютъра си за вас.
Забележка: Този конкретен пример е истинско, което използвах по-рано днес, за да спести малко време, но това са техники, които съм използвал много пъти през годините, за да се спасявам буквално от времето си.
Сценарият
Опитвах се да прочета и изчисти куп неправилни излъчвани съобщения в нашия имейл бюлетин, когато разбрах, че техният интерфейс изисква от мен ръчно да натисна бутона „Изтрий“ и след това да го потвърдя на всяко едно съобщение - говорим за 300 неправилни съобщения, които трябва да бъдат изтрити. За да се влошат нещата, интерфейсът е изключително бавен, което означава, че щях да прекарам 30-40 минути само като щракнах и още по-зле направих своя карпален тунел..
Вместо да направя това, аз създадох нов сценарий на AutoHotkey и бързо написах скрипт, за да свърша работата за мен.
Първата стъпка беше да се идентифицира точно кои кликвания и ключове имах нужда да автоматизирам - очевидно първата стъпка е да кликнете върху бутона X, който повдига този диалогов прозорец за потвърждение на Ajax:
За щастие бутонът Delete се маркира автоматично, така че можете просто да натиснете клавиша Space, за да потвърдите. След като записът е изтрит, всичко се плъзга нагоре, сякаш редът никога не е бил там. Знаейки това, ще се преместим и ще създадем скрипт, който автоматизира натискането на бутона X, изчакващ 3 секунди за диалоговия прозорец за потвърждение, натискане на интервала и след това изчаква още 3 секунди, за да изчезне редът.
Създаване на скрипта
Първото нещо, което ще искаме да направим, е да създадем цикъл, който да повтаря същите действия няколко пъти - в този случай оценяваме, че ще трябва да повторим това 300 пъти, така че ще използваме Loop синтаксис като този:
Контур 300
Сега ще трябва да автоматизираме действието на кликванията, което е лесно в AutoHotkey-просто въведете кликване. Можете да използвате по-усъвършенстван синтаксис за кликвания, ако желаете, като изберете точно къде искате да кликнете върху екрана или изберете бутона за кликване. За нашите цели просто ще използваме подразбиране, което ни оставя следното:
Контур 300
кликване
Сега нашият скрипт ще щракне 300 пъти подред, но за съжаление имаме този диалогов прозорец за потвърждение, така че сега ще използваме функцията „Изпращане“, за да изпратим клавиша „Интервал“ в активния прозорец..
Контур 300
кликване
Изпрати пространство
Ако погледнете документацията, ще видите всички синтаксиси за специални клавиши - редовни натискания на клавиши могат да бъдат въведени нормално - например, ако искате да въведете тест и след това го сложете с интервал, трябва да го използвате:
Изпращане, тест Space
Така че сега имаме скрипт, който щраква върху бутона и след това се удари в клавиша за интервал, което ще е наред, освен ако интерфейсът е бавен, така че трябва да поставим малка пауза между всяко изпълнение на функциите за кликване и изпращане. За да постигнем това, ще използваме функцията Sleep, която приема само един аргумент - закъснението в милисекунди.
Контур 300
сън 3000
кликване
сън 3000
Изпрати пространство
Сега имаме скрипт, който успешно ще изтрие елементите, изчаквайки 3 секунди преди да започне, така че да можете да преместите курсора на мишката върху първия Х, да щракнете върху бутона, изчаквате 3 секунди, натискате клавиша за интервал и след това да чакате 3 секунди преди да премине през следващия сет. Можете да използвате този прост скрипт точно сега, ако искате да - но какво, ако искате да спрете скрипта?
Това, което ще направим, е да използваме функцията GetKeyState, за да проверим дали сте ударили определен ключ за тестване, ще използваме клавиша F8 и ще добавим следното в средата на цикъла. Това ще открие дали е натиснат клавиша F8 и след това използвайте прекъсването, за да излезете от цикъла.
GetKeyState, състояние, F8
ако е състояние = D
почивка
Заключителният сценарий
Ето и последния скрипт, който е съставен заедно, който вероятно няма да ви помогне много, тъй като е специфичен за моя сценарий, но можете да го използвате, за да създадете свои собствени скриптове, като просто промените кликванията и изпращането на клавиши.
Контур 300
GetKeyState, състояние, F8
ако е състояние = D
почивка
сън 3000
кликване
сън 3000
Изпращане, Space
връщане
За да илюстрирате как работи това на практика, ето един бърз видеоклип, който го показва в действие:
В този конкретен сценарий ми отне около 3 минути, за да съберем заедно запазено работно скриптно време: 27 минути. Достатъчно време, за да запиша видеото и да напиша тази статия!