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

ImageSearch - problem


Rekomendowane odpowiedzi

Opublikowano

Witam mam pewien problem z ImageSearch napisałem kodzik aby sprawdzić czy wszystko śmiga i zatrzymałem się na takim problemie.

 

Mój kod:

#include <ImageSearch.au3>
HotKeySet("{insert}","start")

$x = 0
$y = 0

Func start()
   $result = _ImageSearch('obraz1.bmp',1,$x,$y,10)
   If $result = 1 Then
	  MouseClick("left",$x,$y,1,10)
   Else
	  MsgBox(0,"info","nima")
   EndIf
EndFunc

While 1
   Sleep (100)
WEnd

gdy próbuje uruchomić w panelu wyskakuje mi:

 

>"C: Programarrow-10x10.png Files (x86)\AutoIt3\SciTE\..\autoit3.exe" /ErrorStdOut "C:\Users\Kuba\Desktop\Przykłady.au3"    
"C:\Program Files (x86)\AutoIt3\Include\ImageSearch.au3" (44) : ==> Subscript used on non-accessible variable.:
If $result[0] = "0" Then Return 0
If $result^ ERROR
>Exit code: 1    Time: 3.623
 
wychodzi na to że bład lezy w ImageSearch.au3 tylko że pobierałem go z tutorialu i nikt nie miał wcześniej takiego problemu.
 
Kod ImageSearch.au3:
 
#include-once

Func _ImageSearch($findImage, $resultPosition, ByRef $x, ByRef $y, $tolerance)
	Return _ImageSearchArea($findImage, $resultPosition, 0, 0, @DesktopWidth, @DesktopHeight, $x, $y, $tolerance)
EndFunc   ;==>_ImageSearch

Func _ImageSearchArea($findImage, $resultPosition, $x1, $y1, $right, $bottom, ByRef $x, ByRef $y, $tolerance, $HBMP = 0)
	;MsgBox(0,"asd","" & $x1 & " " & $y1 & " " & $right & " " & $bottom)
	If $tolerance > 0 Then $findImage = "*" & $tolerance & " " & $findImage
	If IsString($findImage) Then
		$result = DllCall("ImageSearchDLL.dll", "str", "ImageSearch", "int", $x1, "int", $y1, "int", $right, "int", $bottom, "str", $findImage, "ptr", $HBMP)
	Else
		$result = DllCall("ImageSearchDLL.dll", "str", "ImageSearch", "int", $x1, "int", $y1, "int", $right, "int", $bottom, "ptr", $findImage, "ptr", $HBMP)
	EndIf

	; If error exit
	If $result[0] = "0" Then Return 0

	; Otherwise get the x,y location of the match and the size of the image to
	; compute the centre of search
	$array = StringSplit($result[0], "|")

	$x = Int(Number($array[2]))
	$y = Int(Number($array[3]))
	If $resultPosition = 1 Then
		$x = $x + Int(Number($array[4]) / 2)
		$y = $y + Int(Number($array[5]) / 2)
	EndIf
	Return 1
EndFunc   ;==>_ImageSearchArea
 

to jest ta linijka kodu gdzie wskazuje bład 

If $result[0] = "0" Then Return 0 

Jak ktoś może to prosiłbym o podesłanie poprawionego kodu lub napisania w czym leży problem.

 

Opublikowano

Twoja wina , nie masz pliku dll właściwego dla systemu 

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

Opublikowano

okey dzięki juz działa.

mam jeszcze jedno pytanko bo na pulpicie wyszukuje mi obrazek i klika a jak wchodzę do gry to juz nie jest to spowodowane zbyt mały podobienstwem czy może trzeba dodać jeszcze jakieś funkcje ?

Zarchiwizowany

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

×
×
  • Dodaj nową pozycję...