Skip to content

Jak zaoszczędzić czas, automatyzując żmudne zadania za pomocą AutoHotkey?

26 de lipiec de 2021
1627316807 image111

Czy kiedykolwiek musiałeś wykonywać to samo bezmyślne zadanie na swoim komputerze? Zamiast marnować godziny na klikanie przycisków i wciskanie klawiszy, jest to idealny czas na wykorzystanie umiejętności AutoHotkey, aby Twój komputer wykonał pracę za Ciebie.

Notatka: Ten konkretny przykład jest prawdziwym, którego użyłem wcześniej dzisiaj, aby zaoszczędzić trochę czasu, ale są to techniki, których używałem wiele razy przez lata, aby dosłownie zaoszczędzić sobie dni.

Scenariusz

Próbowałem przejrzeć i wyczyścić kilka niepoprawnych wiadomości rozgłoszeniowych na naszym koncie biuletynu e-mail, kiedy zdałem sobie sprawę, że ich interfejs wymaga ode mnie ręcznego kliknięcia przycisku Usuń, a następnie potwierdzenia go w każdej pojedynczej wiadomości — mówimy o 300 niepoprawne wiadomości, które trzeba było usunąć. Co gorsza, interfejs jest bardzo powolny, co oznacza, że ​​spędziłbym dobre 30-40 minut na klikaniu i pogorszeniu cieśni nadgarstka.

Zamiast tego stworzyłem nowy skrypt AutoHotkey i szybko napisałem skrypt, który wykona za mnie pracę.

Pierwszym krokiem było dokładne określenie, które kliknięcia i klawisze muszę zautomatyzować — oczywiście pierwszym krokiem jest kliknięcie przycisku X, który wyświetla to okno dialogowe potwierdzenia Ajax:

1627316807 408 Jak zaoszczedzic czas automatyzujac zmudne zadania za pomoca AutoHotkey


Na szczęście przycisk Usuń jest automatycznie podświetlany, więc możesz po prostu nacisnąć klawisz spacji, aby potwierdzić. Po usunięciu rekordu wszystko przesuwa się w górę, tak jakby wiersza nigdy nie było. Wiedząc o tym, przejdziemy dalej i stworzymy skrypt, który zautomatyzuje kliknięcie przycisku X, czekanie 3 sekundy na okno dialogowe potwierdzenia, naciśnięcie spacji, a następnie czekanie kolejnych 3 sekund na zniknięcie wiersza.

Tworzenie skryptu

Pierwszą rzeczą, którą będziemy chcieli zrobić, to utworzyć pętlę, która będzie powtarzać te same czynności wiele razy — w tym przypadku szacujemy, że będziemy musieli powtórzyć to 300 razy, więc użyjemy pętli składnia taka:

Pętla 300
{

}

Teraz musimy zautomatyzować akcję kliknięcia, co jest łatwe w AutoHotkey — wystarczy wpisać Kliknij. Możesz użyć bardziej zaawansowana składnia kliknięć jeśli chcesz, wybierając dokładnie miejsce, w którym chcesz kliknąć na ekranie, lub klikając przycisk. Dla naszych celów użyjemy tylko wartości domyślnej, co pozostawia nam to:

Pętla 300
{
Kliknij
}

Teraz nasz skrypt kliknie 300 razy z rzędu, ale niestety musimy sobie z tym poradzić, więc teraz użyjemy Funkcja wysyłania aby wysłać naciśnięcie klawisza spacji do aktywnego okna.

Pętla 300
{
Kliknij
Wyślij, {spacja}
}

Jeśli zajrzysz do dokumentacji, zobaczysz całą składnię klawiszy specjalnych — zwykłe naciśnięcia klawiszy można wprowadzać normalnie — na przykład, jeśli chcesz pisać test a następnie zakończ go spacją, użyjesz tego:

Wyślij, przetestuj{Spacja}

Więc teraz mamy skrypt, który klika przycisk, a następnie naciska spację, co byłoby w porządku, z wyjątkiem tego, że interfejs jest powolny, więc musimy wstawić małą pauzę między każdym wykonaniem kliknięcia i funkcji wysyłania. Aby to osiągnąć, użyjemy Funkcja uśpienia, który przyjmuje tylko jeden argument — opóźnienie w milisekundach.

Pętla 300
{
spać 3000
Kliknij
spać 3000
Wyślij, {spacja}
}


Teraz mamy skrypt, który pomyślnie usunie elementy, czekając 3 sekundy przed uruchomieniem, dzięki czemu można przesunąć kursor myszy nad pierwszy X, kliknąć przycisk, odczekać 3 sekundy, nacisnąć spację, a następnie czekać 3 sekundy, zanim przejdzie przez następny zestaw. Możesz użyć tego prostego skryptu już teraz, jeśli chcesz, ale co, jeśli chcesz zatrzymać skrypt?

To, co zrobimy, to użyj Funkcja GetKeyState aby sprawdzić, czy trafiłeś w określony klawisz — do testowania użyjemy klawisza F8 i dodamy następujące w środku pętli. To wykryje, czy klawisz F8 został naciśnięty, a następnie użyje przerwy, aby wyjść z pętli.

GetKeyState, stan, F8
jeśli stan = D
złamać

Scenariusz końcowy

Oto ostateczny skrypt, który wszystko razem składa, co prawdopodobnie nie pomoże ci zbytnio, ponieważ jest specyficzny dla mojego scenariusza — ale możesz go użyć do tworzenia własnych skryptów, po prostu modyfikując kliknięcia i wysyłanie naciśnięć klawiszy.

Pętla 300
{
GetKeyState, stan, F8
jeśli stan = D
złamać
spać 3000
Kliknij
spać 3000
Wyślij, {spacja}
}
Powrót

Aby zilustrować, jak to działa w praktyce, oto krótki film pokazujący to w akcji:

W tym konkretnym scenariuszu złożenie działającego skryptu zajęło mi około 3 minut — zaoszczędzony czas: 27 minut. Wystarczająco dużo czasu, aby nagrać film i napisać ten artykuł!

Czy ten post był pomocny?