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 - Auto Clicker

2009-03-06

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




gravatar #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.



gravatar #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



gravatar #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ę ?



gravatar #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



gravatar #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

\\



gravatar #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 :)



gravatar #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ę



gravatar #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”,$pos0,$pos1,2)



gravatar #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ą ;)



gravatar #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

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

test
test
test