AutoIt - Auto Clicker
Jakiś czas temu zabrałem się za AutoIt, w skrócie można go opisać jako język skryptowy (strasznie uproszczony) do automatyzacji, po szczegóły odsyłam do strony domowej AutoIt
O powodach dla których napisałem sobie własnego auto clickera pisać nie będę (żeby nie było wiem że są gotowce ale 4 pierwsze linki na google odnosiły się do jakiś wersji demonstracyjnych i tymczasowych. Napisanie tego skryptu zajęło mi około 5 minut)
Nim zajmiemy się skryptem wpierw powinniśmy zaopatrzyć się w potrzebne aplikację. Z strony domowej AutoIt ściągamy AutoIt Full Installation, na początek powinno być wystarczające do naszych potrzeb (głównie mowa tu o edytorze). Po instalacji możemy zabrać się za kod, uruchomimy więc SciTE i zabierzemy się za pisanie
HotKeySet("{F10}", "go") ;=> przypisujemy do F10 funkcje go
HotKeySet("{F11}", "done") ;=> przypisujemy do F11 funkcje done
Dim $run = False ;=> domyslna wartosc zmiennej $run
;zamkniecie programu
Func done() ;=> rozpoczecie funkcji done
Exit ;=> ;wywolanie zamkniecia aplikacji
EndFunc ;=> zakonczenie funkcji done
;rozpoczecie/zatrzymanie
Func go() ;=> rozpoczecie funkcji go
If $run = False Then;=> jezeli zmiena $run posiada wartosc false zmianiamy na true
$run = True
Else
;w innym przypadku zmieniamy na false (inny przypadek do True, dlatego tez
;ponizszy kod mozna by zapisac rowniez w postaci ElseIf $run = True
$run = False
EndIf ;=> zakonczenie if
EndFunc ;=> zakonczenie funkcji go
While True ;=> rozpoczecie petli
If $run = True Then ;=> do run o wartosci True
MouseClick("left") ;=> wykonujemy klikniecie lewym przyciskiem myszy
EndIf ;=> zakonczenie if
Sleep(20) ;=> usypiamy program na 20 milisekund
WEnd ;=> zakonczenie petli
Z racji tego iż kod jest dość prosty omówienie umieściłem w komentarzach.
Kod możemy uruchomić z poziomu SciTE za pomocą klawisza F5 który skompiluje i uruchomi nasza aplikację.
Ponieważ nie ma sensu uruchamiać naszej aplikacji w ten sposób przygotujemy sobie binarkę w postaci exe. Mając wciąż otwarty SciTE wybieramy z menu Tools pozycję Compile
Output type: EXE
Targer: Wybieramy katalog gdzie ma być skompilowany program
Compression: wedle uznania, przy tak małym kodzie i tak nam to nie robi różnicy
Następnie naciskamy Compile Script i kończymy pracę z SciTE. Od teraz mamy własnego autoclickera :)
Załącznik: files/autoclicker2.au3
#7 | Gigaman (2009-03-13)
Mozilla/5.0 (Windows; U; Windows NT 5.1; pl; rv:1.9.0.7) Gecko/2009021910 Firefox/3.0.7
Drunkardbot – zgoogluj to.
#9 | miksior (2009-04-06)
Mozilla/5.0 (Windows; U; Windows NT 6.0; pl; rv:1.9.0.8) Gecko/2009032609 Firefox/2.0.0.16
jak to zrobić, odpisz na email
#16 | Diabel (2009-05-10)
Mozilla/5.0 (Windows; U; Windows NT 5.1; pl; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10
Mam pytanie, jak można ustawić ilość kliknięć na sekundę ?
#17 | thid (2009-05-10)
Mozilla/5.0 (X11; U; Linux i686; pl-PL; rv:1.9.0.10) Gecko/2009043010 Pardus/2008 Firefox/3.0.10
To dość proste Diabel, w kodzie masz Sleep(20) to oznacza ze każde kliknięcie będzie się odbywać co 20 milisekund, Możesz też to zrobić na zasadzie MouseClick(“left”,,,2), 2 na końcu oznacza ilość kliknięć czyli 2 kliknięcia co 20 milisekund
#18 | Diabel (2009-05-11)
Mozilla/5.0 (Windows; U; Windows NT 5.1; pl; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10
Czyli ma wyglądać to tak ?
\\HotKeySet(”{/}”, “go”) ;=> przypisujemy do F10 funkcje go
HotKeySet(”•”, “done”) ;=> przypisujemy do F11 funkcje done
Dim $run = False ;=> domyslna wartosc zmiennej $run
;zamkniecie programu
Func done() ;=> rozpoczecie funkcji done
Exit ;=> ;wywolanie zamkniecia aplikacji
EndFunc ;=> zakonczenie funkcji done
;rozpoczecie/zatrzymanie
Func go() ;=> rozpoczecie funkcji go
If $run = False Then;=> jezeli zmiena $run posiada wartosc false zmianiamy na true
$run = True
Else
;w innym przypadku zmieniamy na false (inny przypadek do True, dlatego tez
;ponizszy kod mozna by zapisac rowniez w postaci ElseIf $run = True
$run = False
EndIf ;=> zakonczenie if
EndFunc ;=> zakonczenie funkcji go
While True ;=> rozpoczecie petli
If $run = True Then ;=> do run o wartosci True
MouseClick(“left”,,,9999) ;=> wykonujemy klikniecie lewym przyciskiem myszy
EndIf ;=> zakonczenie if
Sleep(1) ;=> usypiamy program na 20 milisekund
WEnd ;=> zakonczenie petli
\\
#19 | Diabel (2009-05-11)
Mozilla/5.0 (Windows; U; Windows NT 5.1; pl; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10
Żeby nie pisać tyle postów napisz na GG jak możesz :) 8448924 z góry dzięki :)
#20 | thid (2009-05-11)
Mozilla/5.0 (X11; U; Linux i686; pl-PL; rv:1.9.0.10) Gecko/2009043010 Pardus/2008 Firefox/3.0.10
Jeżeli chodzi ci o to by częściej klikał to wystarczy że zmienisz Sleep(20) na Sleep(1) w tedy będzie klikał co 1 milisekundę
#21 | thid (2009-05-11)
Mozilla/5.0 (X11; U; Linux i686; pl-PL; rv:1.9.0.10) Gecko/2009043010 Pardus/2008 Firefox/3.0.10
Co do poprzedniej informacji na temat ilosci klikniec MouseClick(“left”,,,2), to sie lekko pomylilem, w autoit powinno to wygladac mniej wiecej tak:
$pos = MouseGetPos()
MouseClick(“left”,$pos,$pos,2)
#55 | rad (2010-02-12)
Opera/9.80 (Windows NT 5.1; U; pl) Presto/2.2.15 Version/10.10
można by trochę uprościć konfigurację:
…
$x = 10 ; clicks per second
Sleep(1000/$x)
...
teraz za x wystarczy podstawić żądaną liczbę kliknięć na sekundę, a skrypt zajmie się resztą ;)
#56 | rad (2010-02-12)
Opera/9.80 (Windows NT 5.1; U; pl) Presto/2.2.15 Version/10.10
i jeszcze: gdybym ja pisał takiego “clickera” to zapewne zapętlił bym go w nieskończoność. Jeden klawisz do aktywacji, jeden do dezaktywacji i tak aż do zamknięcia go (ikonką w trayu, hotkey, lub przez proste GUI).
Można by jeszcze zrobić tak:
po aktywacji clicker autoklika tylko przy wciśniętym lewym przycisku myszy (czyli start przy MouseDown i koniec przy MouseUp)
P.S. to wyżej to też ja. Pomyliłem się podając e-mail :P
Dodaj komentarz
*pola: Autor, Adres E-mail, Treść są wymagane
*Textile: Włączone