10Aug

Jak oszczędzać czas, automatyzując żmudne zadania za pomocą AutoHotkey

click fraud protection

Czy kiedykolwiek musiałeś wykonywać to samo bezmyślne zadanie na swoim komputerze? Zamiast marnować godziny, klikając przyciski i uderzając klawiszami, jest to doskonała okazja, aby wykorzystać swoje umiejętności AutoHotkey, aby komputer wykonał pracę za Ciebie.

Uwaga: Ten konkretny przykład jest tym, którego użyłem wcześniej, aby zaoszczędzić trochę czasu, ale są to techniki, z których korzystałem wiele razy w ciągu lat, aby dosłownie zaoszczędzić sobie cennych dni.

Scenariusz

Próbowałem przejść i wyczyścić kilka niepoprawnych wiadomości rozsyłanych w naszym biuletynie e-mailowym, gdy zdałem sobie sprawę, że ich interfejs wymaga ode mnie ręcznego kliknięcia przycisku Usuń, a następnie potwierdzenia go w każdej wiadomości - my ".powtórzenie około 300 niepoprawnych wiadomości, które musiały zostać usunięte. Co gorsza, interfejs jest bardzo powolny, co oznacza, że ​​spędziłbym dobre 30-40 minut po prostu klikając i sprawiając, że mój tunel nadgarstka jeszcze gorzej.

Zamiast tego, stworzyłem nowy skrypt AutoHotkey i szybko napisałem scenariusz, aby wykonać pracę dla mnie.

instagram viewer

Pierwszym krokiem było zidentyfikowanie, które dokładnie kliknięcia i klucze muszę zautomatyzować - oczywiście pierwszym krokiem jest kliknięcie przycisku X, który wywołuje to okno dialogowe potwierdzenia Ajax:

Na szczęście przycisk Usuń jest automatycznie podświetlany, dzięki czemu można po prostunaciśnij klawisz spacji, aby potwierdzić.Po usunięciu rekordu wszystko przesuwa się w górę, jakby rząd nigdy nie był.Wiedząc o tym, przejdziemy dalej i utworzymy skrypt, który automatyzuje klikanie przycisku X, czekając 3 sekundy na okno dialogowe potwierdzenia, naciska klawisz Spacja, a następnie czeka kolejne 3 sekundy na zniknięcie wiersza.

Tworzenie skryptu

Pierwszą rzeczą, którą chcemy zrobić, jest utworzenie pętli, która będzie powtarzać te same akcje kilka razy - w tym przypadku szacujemy, że będziemy musieli powtórzyć to 300 razy, więcużyjemy następującej składni:

Loop 300
{

}

Teraz będziemy musieli zautomatyzować akcję klikania, co jest łatwe w AutoHotkey - wystarczy wpisać kliknij .Możesz użyć bardziej zaawansowanej składni kliknięć, wybierając dokładnie to, gdzie chcesz kliknąć na ekranie lub klikając przycisk. Dla naszych celów użyjemy tylko wartości domyślnej, która pozostawia nam to:

Loop 300
{
kliknij
}

Teraz nasz skrypt kliknie 300 razy z rzędu, ale niestety mamy to okno dialogowe potwierdzeniasobie z tym poradzić, więc teraz użyjemy funkcji Wyślij, aby wysłać klawisz spacji do aktywnego okna.

Loop 300
{
kliknij
Wyślij,{ Space}
}

Jeśli spojrzysz na dokumentację, zobaczysz całą składnię klawiszy specjalnych - zwykłe naciśnięcia klawiszy można wprowadzić normalnie - na przykład, jeśli chcesz wpisać przetestuj i zakończ go spacją, użyjesz tego:

Wyślij, przetestuj{ Space}

Teraz mamy skrypt, który klika przycisk, a następnie uderza w spację, co byłoby w porządku poza interfejsemjest powolny, więc musimy wstawić małą przerwę między każdym wykonaniem funkcji kliknięcia i wysłania. Aby to osiągnąć, użyjemy funkcji Sleep, która przyjmuje tylko jeden argument - opóźnienie w milisekundach.

Loop 300
{
sleep 3000
kliknij
sleep 3000
Wyślij,{ Spacja}
}

Teraz mamy skrypt, który pomyślnie usunie elementy, czekając 3 sekundy przed jego uruchomieniem, abyś mógł przesunąć kursor myszyprzez pierwsze X, klikając przycisk, czekając 3 sekundy, uderzając w spację, a następnie czekając 3 sekundy, zanim przejdzie przez następny zestaw. Możesz teraz użyć tego prostego skryptu, jeśli chcesz, ale co jeśli chcesz zatrzymać skrypt?

Będziemy używać funkcji GetKeyState, aby sprawdzić, czy trafiłeś konkretny klucz - do testowania użyjemy klawisza F8 i dodamy poniższe w środku pętli. Spowoduje to wykrycie, czy klawisz F8 został naciśnięty, a następnie użyj przerwania, aby wyjść z pętli.

GetKeyState, stan, F8
, jeśli stan = D
zerwanie

Końcowy skrypt

Oto ostateczny skrypt, który wszystko razem wzięte, co prawdopodobnie nie pomoże ci zbyt wiele, ponieważ jest specyficzny dla mojego scenariusza - ale możesz go użyć do utworzeniawłasne skrypty, po prostu modyfikując kliknięcia i wysyłanie za pomocą klawisza.

Loop 300
{
GetKeyState, stan, F8
jeśli stan = D
zerwanie
sleep 3000
kliknij
sleep 3000
Wyślij,{ Space}
}
Return

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

W tym szczególnym scenariuszu zajęło mi około 3 minut, aby zebrać działający czas skryptu zapisany: 27 minut. Wystarczy mi czasu, aby nagrać film i napisać ten artykuł!