AutoIt - Rozbudowujemy Auto Clicker
Poprzednio przedstawiłem najprostszą wersję autoclickera, dziś postanowiłem opisać jak rozbudować poprzedni kod o dodatkową obsługę prawego przycisku myszy oraz kilka innych rzeczy :)
Nie będę ponownie opisywał całego procesu instalacji potrzebnego nam oprogramowania tylko od razu przejdę do kodu, w przeciwieństwie do poprzedniej wersji dziś trochę bardziej to opiszę
HotKeySet("{F9}", "left") ;=> przypisujemy do F9 funkcje left
HotKeySet("{F10}", "right") ;=> przypisujemy do F10 funkcje right
HotKeySet("{F11}", "done") ;=> przypisujemy do F11 funkcje done
Korzystamy z funkcji HotKeySet by przypisać dla poszczególnych klawiszy (F9, F10, F11) odpowiednie polecenia. Dla przycisku F9 przypisaliśmy funkcję left, która będzie odpowiedzialna za uruchamianie/zatrzymywanie lewego przycisku myszy, do przycisku F10 przypisaliśmy funkcję right, będzie odpowiadać za prawy przycisk myszy, natomiast przycisk F11 będzie odpowiadał za zamknięcie naszego autoclickera
Dim $l_run = False ;=> domyslna wartosc zmiennej l_run
Dim $r_run = False ;=> domyslna wartosc zmiennej r_run
$t = 20 ;=> wartosc zmiennej t
$clicks = 1 ;=> wartosc zmiennej clicks
Korzystając z Dim ustalamy że domyślną wartością dla zmiennej l_run oraz r_run jest False. Zmienne te będą określać czy poszczególne przyciski myszy mają w danej chwili działać, tak więc l_run będzie odpowiedzialne za lewy przycisk myszy natomiast r_run za prawy. Zmienna t określa co ile ma nastąpić kliknięcie (w tym przypadku kliknięcie nastąpi co 20 milisekund), natomiast clicks określa ile raz ma nastąpić kliknięcie, domyślnie ustawiliśmy na 1 w przypadku gdybyśmy ustawili na 4, nastąpiły by 4 kliknięcia co 20 milisekund.
;zamkniecie programu
Func done() ;=> rozpoczecie funkcji done
Exit ;=> ;wywolanie zamkniecia aplikacji
EndFunc ;=> zakonczenie funkcji done
To nasza pierwsza funkcja done (przypisaliśmy do niej klawisz F11), po naciśnięciu na klawiaturze przycisku F11 nastąpi zamknięcie naszego programu
;rozpoczecie/zatrzymanie right
Func right() ;=> rozpoczecie funkcji right
If $r_run = False Then;=> jezeli zmiena $r_run posiada wartosc false zmieniamy na true
$r_run = True
Else
;w innym przypadku zmieniamy na false (inny przypadek to True)
$r_run = False
EndIf ;=> zakonczenie if
EndFunc ;=> zakonczenie funkcji right
;rozpoczecie/zatrzymanie left
Func left() ;=> rozpoczecie funkcji left
If $l_run = False Then ;=> jezeli zmienne $l_run posiada wartosc false zmieniamy na true
$l_run = True
Else
;w innym przypadku zmieniamy na false (inny przypadek to True)
$l_run = False
EndIf ;=> zakonczenie if
EndFunc ;=> zakonczenie funkcji left
Nasze dwie główne funkcje right i left, będą one odpowiadać za uruchamianie i zatrzymywanie naszego autoclickera. Gdy wciśniemy jeden z przypisanych klawiszy, skrypt sprawdzi czy już wcześniej tego nie zrobiliśmy dlatego też zmienna l_run oraz r_run mają domyślnie false, gdy wciśniemy F9 funkcja left sprawdzi wartość zmiennej l_run, gdy będzie ona wynosiła false zmienni jej wartość na true (co spowoduje rozpoczęcie procesu auto klikania) w innym przypadku gdy zmienna już będzie miała wartość true, skrypt zmienni jej wartość na false (co spowoduje zatrzymanie procesu auto kilkania). Funkcja left i right są do siebie podobne, różnie je tylko nazwa oraz to że zmieniają wartości dla różnych zmiennych
While True ;=> rozpoczecie petli
$pos = MouseGetPos() ;=> okreslamy pozycje kursora na ekranie
If $r_run = True Then ;=> dla r_run o wartosci True
MouseClick("right",$pos[0],$pos[1],$clicks) ;=> wykonujemy klikniecie prawym przyciskiem myszy
EndIf ;=> zakonczenie if
If $l_run = True Then ;=> dla l_run o wartosci True
MouseClick("left",$pos[0],$pos[1],$clicks) ;=> wykonujemy klikniecie lewym przyciskiem myszy
EndIf ;=> zakonczenie if
Sleep($t) ;=> usypiamy program na 20 milisekund
WEnd ;=> zakonczenie petli
Czas na kod odpowiedzialny za właściwe klikanie. Zmienna pos zawiera aktualną pozycję naszego kursora (wynik dostajemy w tablicy). W przypadku gdy zmienna r_run ma wartość True następuje kliknięcie prawym przyciskiem myszy ("right"), $pos[0] oraz $pos[1] określają gdzie obecnie znajduje się nasz kursor natomiast zmienna $clicks określa ile razy ma nastąpić kliknięcie (deklarowaliśmy tą zmienną wcześniej). Identyczna sytuacja następuje w dalszej części skryptu, następuje sprawdzenie czy l_run ma wartość True i następuje kliknięcie lewym przyciskiem myszy. Sleep zawiera zmienna $t ją również zdeklarowaliśmy wcześniej, Sleep odpowiada za uśpienie programu czyli mówiąc prościej określamy nim co ile ma nastąpić kliknięcie (czas jest podawany w milisekundach)
I to na tyle, mam nadzieję że tym razem kod był lepiej opisany, pod spodem jak zwykle do pobrania kompletny plik z kodem programu :)
Załącznik: files/autoclicker3.au3