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

[Pytanie]Warunek w Autoit, ImageSearch


Rekomendowane odpowiedzi

Opublikowano

Witam,

robie skrypt ktory odnajduje obrazek i przeciaga go w odpowiednie pole, nastepnie szuka drugiego obrazka i takze go przeciaga w odpowiednie pole. Udało mi się już to napisać za pomocą ImageSearch kod poniżej, ale chce jeszcze dodac do tego taki warunek, że jak nie znajdzie pierwszego obrazka to nie przesunie tego drugiego i przejdzie do ostatniego wiersza czyli do MouseClick("left" 600, 460). Z tego co wyczytałem to warunek "If" tylko jak to dokladnie zrobić?

 

Sleep(4000)
MouseClick("left", 700,576)
sleep(3000)
#include <ImageSearch.au3>
Global $x, $y
$result = _ImageSearch("ak.bmp", 1, $x, $y, 10)
If $result = 1 Then
MouseClickDrag("left", $x, $y, 600, 250)
EndIf
sleep(500)
#include <ImageSearch.au3>
Global $x, $y
$result = _ImageSearch("huk.bmp", 1, $x, $y, 10)
If $result = 1 Then
MouseClickDrag("left", $x, $y, 600, 250)
EndIf

MouseClick("left" 600, 460)

Opublikowano

Staraj się dołączać UDF-y do swojego skryptu na samym początku (chodzi o :#include <ImageSearch.au3>).

Co do Twojego pytania to robisz zamiast tych 2 IF-ów 1. Jak nie znajdzie tego pierwszego obrazka to do drugiego też nie poleci.

Opublikowano

Sleep(4000)

MouseClick("left", 700,576)

sleep(3000)

#include

Global $x, $y

$result = _ImageSearch("ak.bmp", 1, $x, $y, 10)

If $result = 1 Then

MouseClickDrag("left", $x, $y, 600, 250)

EndIf

sleep(500)

#include

Global $x, $y

$result2 = _ImageSearch("huk.bmp", 1, $x, $y, 10)

If $result2 = 1 And $result 1 = 1 Then

MouseClickDrag("left", $x, $y, 600, 250)

EndIf

 

;Wie ktoś dlaczego mi się nie wyświetla "ten edytor" typu czcionki itp?

1387536187-U112334.png

Jeśli Ci pomogłem mógłbyś wynagrodzić lajkiem :)

Opublikowano

1. Include zwykło się dawać na sam początek.

2. Niepotrzebnie podajesz dwa razy #include <...>, raz wystarczy. Tak samo deklaracja zmiennych Global $x, $y.

3. Po prostu skopiowałeś skądś ten sam kawałek kodu i go zmieniłeś. Teraz postaraj się go zrozumieć

4. Skoro użyłeś już instrukcji warunkowych to nie rozumiesz jak to zrobić znów? j.w.

#include <ImageSearch.au3>

Global $x, $y

Sleep(4000)
MouseClick("left", 700,576)
Sleep(3000)


$result = _ImageSearch("ak.bmp", 1, $x, $y, 10)
If $result = 1 Then
	MouseClickDrag("left", $x, $y, 600, 250)
	Sleep(500)
	$result = _ImageSearch("huk.bmp", 1, $x, $y, 10)
	If $result = 1 Then
		MouseClickDrag("left", $x, $y, 600, 250)
	EndIf
EndIf

MouseClick("left" 600, 460)

To powinno być mniej-więcej tak.

Include jest na początku, dla porządku zdefiniowane zmienne są też na początku. I nie definiujesz ich później drugi raz.

Tabulacja dla przejrzystości.

 

Jak to działa - Jest jedna instrukcja IF. Wykona się tylko wtedy, gdy $result=1, czyli znaleziony jest pierwszy obrazek. Jeśli nie jest znaleziony to IF się nie wykona, a co w nim jest widzisz. Tym samym wykona się pierwsze co jest za IFem, czyli MouseClick(...).

Zarchiwizowany

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

×
×
  • Dodaj nową pozycję...