Как сэкономить время, автоматизируя утомительные задачи с помощью AutoHotkey
Вам когда-нибудь приходилось выполнять одну и ту же бессмысленную задачу снова и снова на вашем компьютере? Вместо того, чтобы тратить часы на нажатие кнопок и нажатие клавиш, это идеальное время, чтобы использовать свои навыки AutoHotkey, чтобы заставить ваш компьютер делать работу за вас..
Замечания: Этот конкретный пример является реальным, который я использовал ранее сегодня, чтобы сэкономить небольшое количество времени, но это методы, которые я использовал много раз на протяжении многих лет, чтобы в буквальном смысле сэкономить свои дни..
Сценарий
Я пытался просмотреть и очистить кучу неправильных широковещательных сообщений в нашей учетной записи электронной почты, когда я понял, что их интерфейс требует, чтобы я вручную нажимал кнопку Удалить и затем подтверждал это в каждом отдельном сообщении - мы говорим о 300 неправильные сообщения, которые нужно было удалить. Что еще хуже, интерфейс очень медленный, а это значит, что я потратил бы хорошие 30-40 минут, просто щелкая и делая мой запястный туннель еще хуже.
Вместо этого я создал новый скрипт AutoHotkey и быстро написал скрипт, который сделает всю работу за меня.
Первым шагом было точно определить, какие клики и клавиши мне нужно было автоматизировать - очевидно, первым шагом является нажатие на кнопку X, которая вызывает диалоговое окно подтверждения Ajax:
К счастью, кнопка «Удалить» автоматически подсвечивается, поэтому вы можете просто нажать клавишу пробела для подтверждения. Как только запись удалена, все скользит вверх, как будто строки там никогда не было. Зная это, мы продолжим работу и создадим скрипт, который автоматизирует нажатие кнопки X, ожидание диалогового окна подтверждения в течение 3 секунд, нажатие клавиши пробела, а затем еще 3 секунды в ожидании исчезновения строки..
Создание сценария
Первое, что мы хотим сделать, это создать цикл, который будет повторять одни и те же действия несколько раз - в этом случае мы оцениваем, что нам нужно будет повторить это 300 раз, поэтому мы будем использовать цикл синтаксис такой:
Петля 300
Теперь нам нужно автоматизировать действие нажатия, что очень просто в AutoHotkey - просто наберите щелчок. Вы можете использовать более сложный синтаксис кликов, если хотите, выбирая, где именно вы хотите, чтобы он нажимал на экране, или нажимая кнопку. Для наших целей мы просто будем использовать значение по умолчанию, которое оставляет нас с этим:
Петля 300
щелчок
Теперь наш сценарий будет щелкать 300 раз подряд, но, к сожалению, у нас есть этот диалог подтверждения, поэтому теперь мы будем использовать функцию Send для отправки нажатия клавиши пробела в активное окно..
Петля 300
щелчок
Отправить Space
Если вы посмотрите документацию, то увидите, что весь синтаксис для специальных клавиш - обычные нажатия клавиш можно вводить как обычно, например, если вы хотите ввести тестовое задание и затем завершите его пробелом, вы бы использовали это:
Отправить, проверить
Итак, теперь у нас есть скрипт, который нажимает кнопку, а затем нажимает пробел, что было бы хорошо, если бы не медленный интерфейс, поэтому нам нужно вставить небольшую паузу между каждым выполнением функций click и send. Для этого мы будем использовать функцию Sleep, которая принимает только один аргумент - задержка в миллисекундах.
Петля 300
спать 3000
щелчок
спать 3000
Отправить Space
Теперь у нас есть скрипт, который успешно удалит элементы, ожидая 3 секунды, прежде чем он запустится, так что вы можете переместить курсор мыши на первый X, нажать кнопку, подождать 3 секунды, нажать пробел, а затем ждать 3 секунд, прежде чем он пройдет через следующий сет. Вы можете использовать этот простой скрипт прямо сейчас, если хотите, но что, если вы хотите остановить скрипт?
Мы будем использовать функцию GetKeyState, чтобы проверить, нажали ли вы определенную клавишу для тестирования, мы будем использовать клавишу F8 и добавим следующую строку в середину цикла. Это будет определять, была ли нажата клавиша F8, а затем использовать разрыв для выхода из цикла..
GetKeyState, состояние, F8
если состояние = D
перерыв
Последний сценарий
Вот окончательный сценарий, все вместе взятые, который, вероятно, не сильно вам поможет, поскольку он специфичен для моего сценария, но вы можете использовать его для создания собственных сценариев, просто изменяя отправку кликов и нажатий клавиш.
Петля 300
GetKeyState, состояние, F8
если состояние = D
перерыв
спать 3000
щелчок
спать 3000
Отправить, Пробел
Вернуть
Чтобы проиллюстрировать, как это работает на практике, вот краткое видео, которое показывает это в действии:
В этом конкретном сценарии мне потребовалось около 3 минут, чтобы собрать вместе сэкономленное рабочее время: 27 минут. Мне достаточно времени, чтобы записать видео и написать эту статью!