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

Nazwa obrazka jako zmienna


Rekomendowane odpowiedzi

Opublikowano

Witam.

Potrzebuję pomocy, ponieważ nie wiem jak w imagesearchu ustawić nazwę pliku jako zmienną

$bleble = _ImageSearchArea("D:\obrazki\TUTAJ_ZMIENNA.bmp", xxx)

próbowałem tego, przy nazwie obrazka "1.bmp":

$a = 1

$bleble = _ImageSearchArea("D:\obrazki\$a.bmp", xxx)

i

$bleble = _ImageSearchArea("D:\obrazki\"$a".bmp", xxx),

oczywiście to nie działa.

 

Ogólnie chciałbym, żeby mi nazwy obrazków wczytywało z pliku i po kolei je wyszukiwało na ekranie.

Za każdą pomoc z góry dzięki.

Opublikowano


$mask = @ScriptDir&"/*.bmp" ;pliki z rozszerzeniem BMP w miejscu skryptu

$search = FileFindFirstFile($mask)

Do

$file = FileFindNextFile($search)

$result = _ImageSearch($file, 1, $x, $y, 20) ;B

If $result = 1 Then

;co ma wykonac

EndIf

Until ConsoleWrite($file & @CRLF)=2

FileClose($search)

 

Opublikowano

Jeśli w AutoIT chcesz połączyć jakieś łańcuchy znaków(w twoim przypadku "D:\obrazki\", zmienną i ".bmp") to musisz użyć operatora &

Opublikowano

IZZER4 Fireho

Dzięki, właśnie tego mi było trzeba, mam jeszcze jedno pytanie, co tu jest źle:

 

$img = 0
While $img = 0
akcja1
$img = _ImageSearchArea(FileReadLine("D:\obrazki\Test.txt",1), 1, xxx)
If $img = 1 Then
akcja2
EndIf
WEnd

 

nie wpisuje mi s, albo jak inaczej szukać nazwy obrazków z notatnika?

 

 

Aha jeszcze zapytam, czy da się jakoś odczytać tekst we wskazanym miejscu z przeglądarki?

Opublikowano

Oto rozwiazanie :)

 $obraz =''
_FileReadToArray("D:\obrazki\Test.txt",$obraz)
For $x = 1 To $obraz[0]
$img = _ImageSearchArea($obraz[$x],1)
If $img = 1 Then

Endif
Next

Co do drugiego pytania;

Uzyj ff.au3 albo ie.au3

Opublikowano

Fajny ten ff.au3 ale zdaje mi się że program będzie zbyt łatwo wykrywalny, czy się mylę?

Tylko mi to rozwiązanie nie działa, pomimo, że mam #include <Array.au3> wyskakuje błąd:

For $x = 1 To $obraz[0]
For $x = 1 To $obraz^ ERROR

Error: Subscript used with non-Array variable

Twojego rozwiązania do końca nie rozumiem, FileReadToArray z Tekst.txt każdą linijkę zapisuje do tablicy $obraz, nawet gdy w linijce napiszę spację, więc żeby mieć 2 zmienne do pętli musze je osobno zapisywać w dwóch plikach txt?

Nie mogę zrozumieć czemu masz $obraz =' '  i   To $obraz[0]

Opublikowano
_FileReadToArray

No nazwy zapisujesz osobno w kazdej lini, nie trzeba zadnych dwoch txt.

$obraz = ''

Musisalem na poczatku to zapisac poniewaz by wyskoczy error w FileRead.

 

Funkcja

_FileReadToArray

Zwraca w pierwszej komorce ilosc ilosc komorek w danej tablicy, wiec dlatego masz $obraz[0]

 

Po

_FileReadToArray("D:\obrazki\Test.txt",$obraz)

Daj

_ArrayDisplay($obraz)

Zeby zobaczyc czy wszytsko dobrze pobiera.

 

 

@Edit

Biblioteke

#include <file.au3>

Oczywiscie masz?

Opublikowano

#include <file.au3> mam

wygląda to tak:

 

#include <File.au3>

#include <Array.au3>

#include <ImageSearch.au3>

Global $x, $y, $img, $obraz, $tescik

 

$tescik=FileOpen("D:\obrazki\Test.txt",0)

 $obraz =''

_FileReadToArray("D:\obrazki\Test.txt",$obraz)

_ArrayDisplay($obraz)

For $x = 1 To $obraz[0]

$img = _ImageSearchArea($obraz[$x], 1, 100, 200, 900, 600, $x, $y, 5)

If $img = 1 Then

Send ("{s down}")

Endif

Next

FileClose($tescik)

a ten błąd dalej wyskakuje

For $x = 1 To $obraz[0]

For $x = 1 To $obraz^ ERROR

Error: Subscript used with non-Array variable

 

W Test.txt mam takie coś:

"D:\obrazki\1.bmp"

"D:\obrazki\2.bmp"

"D:\obrazki\3.bmp"

"D:\obrazki\4.bmp"

Opublikowano

Dla testu sobie wklepalem taki kod

#include <array.au3>
#include <file.au3>
 $obraz =''
_FileReadToArray(@ScriptDir & '/Test.txt',$obraz)
For $x = 1 To $obraz[0]
ConsoleWrite($obraz[$x] & @CRLF)
Next

Wynik z konsoli

Olek1
Olek2
Olek3
Olek4
 
Czyli wszystko prawidlowo smiga. Pobierz najnowsza wersje autoit.
Aaa i ArrayDisplay zwraca ci wynik z txt?
 
Nazwy obrazkow zapisz bez  ""
Opublikowano

Próbowałem, nazwy bez "", arraydisplay nic nie robi. Pewnie tak jak piszesz, że to przez wersje autoita (mam 3.3.8.1), ale to już postaram sobie naprawić.
Jak myślisz, zastosowanie ff.au3 i winhttp.au3 sprawi że program będzie łatwiej wykrywalny niż z samym imagesearch'em, send'em i mouseclick'iem (i czy te trzy funkcje są  do wykrycia przez przeglądarkę?)?

Opublikowano

Zainstalowałem najnowszą wersję Autoita ale dalej wyskakuje błąd:

 

For $x = 1 To $obraz[0]
For $x = 1 To $obraz^ ERROR

Error: Subscript used with non-Array variable

 

Jest problem z wczytaniem tekstu do tablicy :(

 

Co zrobić, bo już mi się skończyły pomysły?

 

Edit

Po próbach zauważyłem że błąd nie jest w tablicach, tylko w czytaniu z plików, a File.au3 powinienem mieć dobre.

 

 

Zarchiwizowany

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

×
×
  • Dodaj nową pozycję...