Minilog: chwilowo mam jakas przerwe z notkami, glownie z powodu poprawek graficznych i w skrypcie (poza tym aseeon wspomnial ze mam kiepskie kolorowanie skladni wiec nad tym tez bede musial posiedziec). Czesciowo juz jest skonczony dalszy kurs o autoit :)

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





Dodaj komentarz


*pola: Autor, Adres E-mail, Treść są wymagane
*Textile: Włączone

Autor
Adres E-mail
Odnośnik do strony
Treść

test
test
test