Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz

[Problem] Skrócenie Kodu.


Rekomendowane odpowiedzi

Opublikowano

Siema. Mam mały problem, tworzę botka do gry z przepisywaniem captcha i nie wiem jak skrócić kod (jeśli się da) jest on długi co nie ładnie wygląda i zabiera dużo procka.

Jestem "noobkiem" w Autoit, więc proszę nie czepiajcie się.

To tylko fragment z kodu:

 

#include <ImageSearch.au3>
Sleep(5000)
$result1 = _ImageSearch("autoit obrazy\1.0.bmp", 1, 0, 0, 0)
$result2 = _ImageSearch("autoit obrazy\1.1.bmp", 1, 0, 0, 0)
$result3 = _ImageSearch("autoit obrazy\1.2.bmp", 1, 0, 0, 0)
$result4 = _ImageSearch("autoit obrazy\1.3.bmp", 1, 0, 0, 0)
$result5 = _ImageSearch("autoit obrazy\1.4.bmp", 1, 0, 0, 0)
$result6 = _ImageSearch("autoit obrazy\1.5.bmp", 1, 0, 0, 0)
$result7 = _ImageSearch("autoit obrazy\1.6.bmp", 1, 0, 0, 0)
$result8 = _ImageSearch("autoit obrazy\1.7.bmp", 1, 0, 0, 0)
$result9 = _ImageSearch("autoit obrazy\1.8.bmp", 1, 0, 0, 0)
$result10 = _ImageSearch("autoit obrazy\1.9.bmp", 1, 0, 0, 0)
$result11 = _ImageSearch("autoit obrazy\2.0.bmp", 1, 0, 0, 0)
$result12 = _ImageSearch("autoit obrazy\2.1.bmp", 1, 0, 0, 0)
$result13 = _ImageSearch("autoit obrazy\2.2.bmp", 1, 0, 0, 0)
$result14 = _ImageSearch("autoit obrazy\2.3.bmp", 1, 0, 0, 0)
$result15 = _ImageSearch("autoit obrazy\2.4.bmp", 1, 0, 0, 0)
$result16 = _ImageSearch("autoit obrazy\2.5.bmp", 1, 0, 0, 0)
$result17 = _ImageSearch("autoit obrazy\2.6.bmp", 1, 0, 0, 0)
$result18 = _ImageSearch("autoit obrazy\2.7.bmp", 1, 0, 0, 0)
$result19 = _ImageSearch("autoit obrazy\2.8.bmp", 1, 0, 0, 0)
$result20 = _ImageSearch("autoit obrazy\2.9.bmp", 1, 0, 0, 0)
$result21 = _ImageSearch("autoit obrazy\3.0.bmp", 1, 0, 0, 0)
$result22 = _ImageSearch("autoit obrazy\3.1.bmp", 1, 0, 0, 0)
$result23 = _ImageSearch("autoit obrazy\3.2.bmp", 1, 0, 0, 0)
$result24 = _ImageSearch("autoit obrazy\3.3.bmp", 1, 0, 0, 0)
$result25 = _ImageSearch("autoit obrazy\3.4.bmp", 1, 0, 0, 0)
$result26 = _ImageSearch("autoit obrazy\3.5.bmp", 1, 0, 0, 0)
$result27 = _ImageSearch("autoit obrazy\3.6.bmp", 1, 0, 0, 0)
$result28 = _ImageSearch("autoit obrazy\3.7.bmp", 1, 0, 0, 0)
$result29 = _ImageSearch("autoit obrazy\3.8.bmp", 1, 0, 0, 0)
$result30 = _ImageSearch("autoit obrazy\3.9.bmp", 1, 0, 0, 0)
$result31 = _ImageSearch("autoit obrazy\4.0.bmp", 1, 0, 0, 0)
$result32 = _ImageSearch("autoit obrazy\4.1.bmp", 1, 0, 0, 0)
$result33 = _ImageSearch("autoit obrazy\4.2.bmp", 1, 0, 0, 0)
$result34 = _ImageSearch("autoit obrazy\4.3.bmp", 1, 0, 0, 0)
$result35 = _ImageSearch("autoit obrazy\4.4.bmp", 1, 0, 0, 0)
$result36 = _ImageSearch("autoit obrazy\4.5.bmp", 1, 0, 0, 0)
$result37 = _ImageSearch("autoit obrazy\4.6.bmp", 1, 0, 0, 0)
$result38 = _ImageSearch("autoit obrazy\4.7.bmp", 1, 0, 0, 0)
$result39 = _ImageSearch("autoit obrazy\4.8.bmp", 1, 0, 0, 0)
$result40 = _ImageSearch("autoit obrazy\4.9.bmp", 1, 0, 0, 0)
If $result1 == 1 Then
$kod = "0"
ElseIf $result2 == 1 Then
$kod = "1"
ElseIf $result3 == 1 Then
$kod = "2"
ElseIf $result4 == 1 Then
$kod = "3"
ElseIf $result5 == 1 Then
$kod = "4"
ElseIf $result6 == 1 Then
$kod = "5"
ElseIf $result7 == 1 Then
$kod = "6"
ElseIf $result8 == 1 Then
$kod = "7"
ElseIf $result9 == 1 Then
$kod = "8"
ElseIf $result10 == 1 Then
$kod = "9"
EndIf
If $result11 == 1 Then
$kod = $kod & "0"
ElseIf $result12 == 1 Then
$kod = $kod & "1"
ElseIf $result13 == 1 Then
$kod = $kod & "2"
ElseIf $result14 == 1 Then
$kod = $kod & "3"
ElseIf $result15 == 1 Then
$kod = $kod & "4"
ElseIf $result16 == 1 Then
$kod = $kod & "5"
ElseIf $result17 == 1 Then
$kod = $kod & "6"
ElseIf $result18 == 1 Then
$kod = $kod & "7"
ElseIf $result19 == 1 Then
$kod = $kod & "8"
ElseIf $result20 == 1 Then
$kod = $kod & "9"
EndIf
If $result21 == 1 Then
$kod = $kod & "0"
ElseIf $result22 == 1 Then
$kod = $kod & "1"
ElseIf $result23 == 1 Then
$kod = $kod & "2"
ElseIf $result24 == 1 Then
$kod = $kod & "3"
ElseIf $result25 == 1 Then
$kod = $kod & "4"
ElseIf $result26 == 1 Then
$kod = $kod & "5"
ElseIf $result27 == 1 Then
$kod = $kod & "6"
ElseIf $result28 == 1 Then
$kod = $kod & "7"
ElseIf $result29 == 1 Then
$kod = $kod & "8"
ElseIf $result30 == 1 Then
$kod = $kod & "9"
EndIf
If $result31 == 1 Then
$kod = $kod & "0"
ElseIf $result32 == 1 Then
$kod = $kod & "1"
ElseIf $result33 == 1 Then
$kod = $kod & "2"
ElseIf $result34 == 1 Then
$kod = $kod & "3"
ElseIf $result35 == 1 Then
$kod = $kod & "4"
ElseIf $result36 == 1 Then
$kod = $kod & "5"
ElseIf $result37 == 1 Then
$kod = $kod & "6"
ElseIf $result38 == 1 Then
$kod = $kod & "7"
ElseIf $result39 == 1 Then
$kod = $kod & "8"
ElseIf $result40 == 1 Then
$kod = $kod & "9"
EndIf

 

 

 

Proszę was o skrócenie go. Za dobrą robotę poleca + Lub -.

Opublikowano

co ci da skrócenie kodu ? jak dal ciebie kto nie za bardzo jest obeznany w autoit jest bardziej czytelny i łatwiejszy w modyfikacji

nawet go skracając będzie to samo co było

If you = stupid then

insert(foot.in.your.ass)

end if

licznik-54-96732-stat.png

Opublikowano

ImageSearch tak obciąża i tego nie zmienisz , zwłaszcza ze szukasz na całym pulpicie a to troche trwa , mozna uzyć szukania w danym obszarze , ImageSearchArea czy coś podobnego, funkcje masz w udf opisaną

If you = stupid then

insert(foot.in.your.ass)

end if

licznik-54-96732-stat.png

Opublikowano

Nie da. Poza tym na takie działania dzisiejsze procki pierdzą.

czwartkowy posmak w ustach przypomina
że nie ma sensu owijać w bawełnę
zmarzniętego truchła

przez latarnię ktoś przerzucił sznur
cumuje statek w bezpieczną przystań

czuję jak na skroniach zasycha sól
...

Opublikowano

No to trzeba zacząć się uczyć, bo w programowaniu angielski to podstawa.

czwartkowy posmak w ustach przypomina
że nie ma sensu owijać w bawełnę
zmarzniętego truchła

przez latarnię ktoś przerzucił sznur
cumuje statek w bezpieczną przystań

czuję jak na skroniach zasycha sól
...

Opublikowano

da sie... tzn zapis bedzie krotrzy ale i tak na tej samej zasadzie:P

 

#include <ImageSearch.au3>
Sleep(5000)

$ilosc_onrazkow = 40;ilosc obrazkow w zmiennej mozesz ja zmieniac 
Dim $result[$ilosc_obrazkow]
;robi obrazki
For $i = 0 To $ilosc_obrazkow - 1
$result[$i] = _ImageSearch("autoit obrazy\" & $i & ".bmp", 1, 0, 0, 0); zmien nazwe obrazkow na od 0 do 39:P
Next
;teraz sprawdzanie
For $i = 0 To $ilosc_obrazkow - 1
If $result[$i] = 1 Then
	$kod = $kod & $i
EndIf
Next

Do
$wiek+=1
Until ŻycieGetMsg() = -3

zbieram +

Opublikowano

$x &= 0

 

To zwiększy wydajność

liczylem na barce lecz ona niemogla wygrac.

Przez kibicow ktorzy przy rzutach roznych wolnych swiecili w messiego laserami

Opublikowano

1.A powiesz może gdzie to wstawić ?? bo jestem ciemny :P

2.Wiecie jak działa _ImageShearchArea ,bo nie mogę się połapać

Opublikowano

_ImageSearchArea - wyszukuje podany obraz (bitmapa!!!!!!) na wskazanym obszarze na pulpicie.

_ImageSearchArea($findImage,$resultPosition,$x1,$y1,$right,$bottom,ByRef $x, ByRef $y, $tolerance)

 

$findImage = ścieżka do pliku, np. "img\img.bmp

$resultPosition = zwracane kordy obrazka, 1 to środek a 0 to lewy górny róg

$x1, $y1 = lewy górny róg obszaru poszukiwania

$right = "szerokosc" obszaru szukania

$bottom = "wysokosc" obszaru szukania

$x, $y = są to współrzędne obrazka na pulpicie

$tolerance = 1 do 255 - szczegółowość szukania, przy czym jelsi ustawisz na 1 to wystarczy zmiana odcienia jednego pixela i ci nie znajdzie, a jak ustawisz 255 to może ci znalexc całkiem inną rzecz.

czwartkowy posmak w ustach przypomina
że nie ma sensu owijać w bawełnę
zmarzniętego truchła

przez latarnię ktoś przerzucił sznur
cumuje statek w bezpieczną przystań

czuję jak na skroniach zasycha sól
...

Opublikowano

No co racja to racja, ale widziałem na niektórych stronach taką captche, że 2 letnie dzieko by przepisało xD

czwartkowy posmak w ustach przypomina
że nie ma sensu owijać w bawełnę
zmarzniętego truchła

przez latarnię ktoś przerzucił sznur
cumuje statek w bezpieczną przystań

czuję jak na skroniach zasycha sól
...

Opublikowano

Tak się składa, że w temacie catpch'y, 2 letnie dziecko ma większą szansę na sukces niż nawet najbardziej doskonały program komputerowy :P

 

Jedne z bardziej perfidnych, niełamywalnych w żaden sposób captchy, to te podające kontur jakiegoś zwierzaka i pytanie 'Jakie to zwierzę'? Słoń, żyrafa, hipopotam?

 

Żaden program tego nie złamie. A 2 letnie dziecko miało właśnie z tego zadanie domowe :D

Ta sygnatura jest pusta.

Opublikowano

Taa. Ta captcha jest tak upośledzona że idzie to zrobić imageshearkiem :D :P

Autorzy gry nie pomyśleli.

Fli_PL +'ik dla ciebie teraz jakoś sobie poradzę dzięki.

 

Edit: Sorki że jeszcze dupe wam zawracam ale nie działa mi kod

 

 

#include <ImageSearch.au3>
Sleep(5000)
Global $x, $y
$ilosc_obrazkow = 10
Dim $result[$ilosc_obrazkow]
For $i = 0 To $ilosc_obrazkow - 1
	$result[$i] = _ImageSearchArea("autoit obrazy\"	& $i & ".bmp", 1,1, 439, 602, 8, 10, $x, $y, 1)
Next

For $i = 0 To $ilosc_obrazkow - 1
       If $result&$i = 1 Then
MouseClick("left",530,600,1,1)
Send($i)
		EndIf
Next

 

 

Gdy włączę i zaczekam te 5 sek (sleep) to wywala błąd Autoit V3 przestał działać.

Nie wiem co zrobić, chodzi raczej o tą linijke:

$result[$i] = _ImageSearchArea("autoit obrazy\"	& $i & "bmp", 1,1, 439, 602, 8, 10, $x, $y, 1)

bez niej wszystko wporządku :(

Coś jest nie tak może jakiś Include potrzebny albo coś.

Opublikowano

by działało właściwie należy zdefiniować x i y ( pozycje obrazka jak znajdzie ) ale to już jest zrobione na poczatku

1 po pliku bmp określa środek obrazka , jeśli 0 to lewy górny róg

$left, $top, $right, $bottom, zakres szukania , prostokąt/wycinek z widocznego pulpitu , koordynaty dwóch przeciwległych wierzchołków : lewego-górnego i prawego-dolnego

ostatnnia cyfra to tolerancja z jaką porównuje (0-255) , im większa cyfra tym mniejsza

 

Global $x $y
_ImageSearchArea("file.bmp", 1, $left, $top, $right, $bottom, $x, $y, 1)  

If you = stupid then

insert(foot.in.your.ass)

end if

licznik-54-96732-stat.png

Opublikowano

Robem nic mi to nie pomogło Flli_PL już to opisał mi chodzi o to że jeśli włączę program to wywala błąd nie wiem czemu.

Wszystko działa gdy zamienię $result[$i] na $result nie wiem o co w tym chodzi pomóżcie proszę :(

Opublikowano

jaki masz windows , system i ilu bitowy

 

a liczysz od 0 do 10 odejmując 1 , czy od 0 do 10 dodając jeden :)

If you = stupid then

insert(foot.in.your.ass)

end if

licznik-54-96732-stat.png

Opublikowano

do systemów 64 bitowych jest inna dll i nalezy ją zarejestrować czasem by działała ( potzrebne pliki śą na forum autoit z bibliotekami opisanymi dokładnie, nalezy tylko z nich usunąć opis systemu X32 albo X64

 

coś zle z odliczaniem bo liczy

od 0 do 10 odejmując 1 czyli nie dział jak należy ma być

od 0 do 10 dodając 1 albo od 10 do 0 odejmując 1

 

dodam przy okazji : obrazek powinien być zapisany w 24-bitowym kolorze ( paint w zupełności wystarczy do zgrania

If you = stupid then

insert(foot.in.your.ass)

end if

licznik-54-96732-stat.png

Opublikowano

robem, on też popełnił gafę w funkcji, jak już wcześniej zauważył lokuxd:

$result[$i] = _ImageSearchArea("autoit obrazy\" & $i & "bmp", 1,1, 439, 602, 8, 10, $x, $y, 1)

O jeden parametr za dużo.

A i jeszcze błąd, jeśli $i to cyferki, to będzie ci szukać pliku:

 

1bmp

2bmp

3bmp

 

zamiast

 

1.bmp

2.bmp

3.bmp

 

@autor

Przestudiuj >ten< post jeszcze raz, uwzględniając każdy przecinek.

 

@edit ofc, co do bitów systemu to też racja.

czwartkowy posmak w ustach przypomina
że nie ma sensu owijać w bawełnę
zmarzniętego truchła

przez latarnię ktoś przerzucił sznur
cumuje statek w bezpieczną przystań

czuję jak na skroniach zasycha sól
...

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

×
×
  • Dodaj nową pozycję...