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

Klikanie w obrazki ( w przeglądarce)


Rekomendowane odpowiedzi

Opublikowano

Witam . Mam Kod który podam poniżej . I nasuwa się jedno szczególne pytanie a mianowicie: Jak zrobić aby ,,bot" klikał w obrazki na stronie ? 

#include <ImageSearch.au3>
MsgBox(0, "X", "X")
HotKeySet("{HOME}", "start")
$X = 0
$Y = 0
Func start()
 While 1
  $Image1 = _ImageSearch('Parobek.bmp', 0, $X, $Y, 0)
  If $Image1 = 1 Then
   MouseClick('Left', $X, $Y, 1)
  Else
    $Image2 = _ImageSearch('Atak.bmp', 0, $X, $Y, 0)
    If $Image2 = 1 Then
     MouseClick('Left', $X, $Y, 1)
  Else
	 $Image3 = _ImageSearch('Taktyka.bmp', 0, $X, $Y, 0)
	 If $Image3 = 1 Then
	   MouseClick('Left', $X, $Y, 1)
	Else
		  $Image4 = _ImageSearch('Zegar.bmp', 0, $X, $Y, 0)
		  If $Image4 = 1 Then
			 MouseClick('Left', $X, $Y, 1)
		  Else
			 $Image5 = _ImageSearch('Wyjdz.bmp', 0, $X, $Y, 0)
			 If $Image5 = 1 Then
		 MouseClick('Left', $X, $Y, 1)
	  Else
		 $Image6 = _ImageSearch('Odp.bmp', 0, $X, $Y, 0)
		 If $Image6 = 1 Then
			MouseClick('Left', $X, $Y, 1)
			Sleep(10000)
		 EndIf
	  EndIf
   EndIf
EndIf
EndIf
EndIf
			 WEnd
			 EndFunc



Tutaj mam jeszcze Imagesearch.au3 To mogę podać jeśli to potrzebne żeby mi pomóc.

Dziękuję. 

Ps. Napisałem Hud w ostatnim temacie bo nie wiedzialem jak to się zwie xD Chodziło o proste przejrzyste Gui :)

Teraz dziękuję :)

Opublikowano

"...  Jak zrobić aby ,,bot" klikał w obrazki na stronie ? "

 

Widzę, że masz już zrobioną funkcję, która wyszukuje obrazki "ImageSearcz" i klika na nie jak je znajdzie "MouseClick"

Teraz ta funkcję powiąż ze stroną wykorzystując #include <IE.au3>

$oIE_Strona = _IECreate("Nazwa Strony")

_IELoadWait($oIE_Strona)

 _IENavigate ($oIE_Strona, "Nazwa Strony")
_IELoadWait ($oIE_Strona)
 

 

Opublikowano

Sprawdzę jak będzie działać to WIELKIE DZIĘKI ! :)

@Edit 

Coś nie działa, zaraz dam cały kod, (Czy może mam dodać opcje mouse move? ) Czy może nie klika dlatego że jest tam sporo tych samych obrazków? 

include <IE.au3>
$oIE_Strona = _IECreate("Taern.pl")
_IELoadWait($oIE_Strona)
 _IENavigate ($oIE_Strona, "Taern.pl")
_IELoadWait ($oIE_Strona)

#include <ImageSearch.au3>

MsgBox(0, "X", "X")
$X = 0
$Y = 0
 While 1
  $Image1 = _ImageSearch('Parobek.bmp', 0, $X, $Y, 0)
  If $Image1 = 1 Then
   MouseClick('Left', $X, $Y, 1)
  Else
    $Image2 = _ImageSearch('Atak.bmp', 0, $X, $Y, 0)
    If $Image2 = 1 Then
     MouseClick('Left', $X, $Y, 1)
  Else
	 $Image3 = _ImageSearch('Taktyka.bmp', 0, $X, $Y, 0)
	 If $Image3 = 1 Then
	   MouseClick('Left', $X, $Y, 1)
	Else
		  $Image4 = _ImageSearch('Zegar.bmp', 0, $X, $Y, 0)
		  If $Image4 = 1 Then
			 MouseClick('Left', $X, $Y, 1)
		  Else
			 $Image5 = _ImageSearch('Wyjdz.bmp', 0, $X, $Y, 0)
			 If $Image5 = 1 Then
		 MouseClick('Left', $X, $Y, 1)
	  Else
		 $Image6 = _ImageSearch('Odp.bmp', 0, $X, $Y, 0)
		 If $Image6 = 1 Then
			MouseClick('Left', $X, $Y, 1)
			Sleep(10000)
		 EndIf
	  EndIf
   EndIf
EndIf
EndIf
EndIf
			 WEnd





Opublikowano

Widzę, że to ma działać na zalogowanej grze więc za dużo nie zdziałam.

 

Mogę podpowiedzieć co nieco.

 

Stosując _ImageSearch musisz mieć na dysku zapisane zdjęcia, które mają być znalezione przez program. Z doświadczenia wiem, że im większe zdjęcie tym gorzej je wyszukać natomiast jeśli jest za mało to znajduje ich za dużo i klika tam gdzie nie powinien. Porównywany jest każdy piksel.

 

_ImageSearch($findImage,$resultPosition,ByRef $x, ByRef $y,$tolerance)

$findImage => odnośnik do zdjęcia

$resultPosition => U Ciebie jest 0 (po znalezieniu zdjęcia kursor ustawia się w lewym górnym rogu). Ustaw sobie na 1 a kursor będzie ustawiać się na środku zdjęcia

$tolerance => Najważniejszy parametr czyli tolerancja porównywanych pikseli. Ja zawsze ustawiam sobie na 10. U Ciebie jest 0. Wystarczy, że na stronie jeden piksel będzie inny niż na twoim zdjęciu to Ci go nie znajdzie.

 

Ja zawsze zapisywałem to tak:

Global $x, $y, $T = 10
 
If (_ImageSearch("Wyloguj.bmp", 1, $x, $y, $T) > 0) Then 
MouseMove($x, $y)
Else
EndIf
 
Zdarzało się, że sama funkcja zwracała mi błędy typu źle zdefiniowany parametr wyniku więc dodaje coś takiego
Global $result
 
Opublikowano

Jeszcze warunek , obrazki muszą być w tej samej skali/rozmiarze co na stronie i muszą być w obszarze widocznym pulpitu , czyli nie kliknie w obrazek który jest niewidoczny na ekranie.

 

MouseMove jest w MouseClick czyli bezsens użycia przed kliknięciem  

 

By wiedzieć gdzie jest błąd czyta się komunikaty konsoli albo sprawdza czy w ogolę działa funkcja szukania obrazków po skopiowaniu odpowiednich bibliotek zgodnych z wersją systemu 

Mózg to nie mydło; nie ubędzie Ci go, gdy go użyjesz.

Opublikowano

Dzięki Ktosiu . Jutro zastosuję się do waszych wypowiedzi jak nie będzie działać to nie wiem...

@Edit. Ps. I jeszcze jedno ... Tam jest po kilka takich samych obrazków .....

@@Edit

Gra jest zrobiona w Flashu. Czy może dlatego nie działa ? Jeśli tak to co proponujecie do pisania ? 

Zarchiwizowany

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

×
×
  • Dodaj nową pozycję...