오토핫키 커뮤니티

질문
2016.07.20 16:45

로그 질문드립니다.

조회 수 125 추천 0 댓글 1

F1을 누르면 로그가

세나에 접속합니다

이미지\into.bmp 못찾음

ESC

이미지\icon.bmp 못찾음

ESC

ESC

ESC

이렇게 되는데


If(IsImageCheck(x, y, "main.bmp",60,0))

{

getlog("세나 실행 완료")

}

else

{

Send(Esc)

getlog("ESC")

}

이것을 이미지를 기다렸다가 이것을 진행하든가 하고싶은데 어떻게 해야될까요

icon: into: main: 이렇게 각각 만들어서 해야될까요?

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
Gdip_ImageSearchWithdHwnd(Hwnd,Byref X,Byref Y,Image,Variation=0,Trans="",sX = 0,sY = 0,eX = 0,eY = 0)
{
SysGet, wFrame, 7
SysGet, wCaption, 4
gdipToken := Gdip_Startup()
bmpHaystack := Gdip_BitmapFromHwnd(Hwnd)
bmpNeedle := Gdip_CreateBitmapFromFile(Image)
if( sX!= 0 || sY!= 0 || eX!= 0 || eY != 0)
{
sX := sX + wFrame
sY := sY + wCaption + wFrame
eX := eX + wFrame
eY := eY + wCaption + wFrame
}
RET := Gdip_ImageSearch(bmpHaystack,bmpNeedle,LIST,sX,sY,eX,eY,Variation,Trans,1,1)
Gdip_DisposeImage(bmpHaystack)
Gdip_DisposeImage(bmpNeedle)
Gdip_Shutdown(gdipToken)
StringSplit, LISTArray, LIST, `,
X := LISTArray1 - wFrame
Y := LISTArray2 - wCaption - wFrame
;GuiControl,,로그, %bmpHaystack%||%bmpNeedle%||%RET%
;msgbox, %bmpHaystack%,%bmpNeedle%,%RET%
if(RET = 1)
{
return true
}
else
{
return false
}
}
 
 
IsImageCheck(ByRef ClickX, ByRef ClickY, CKImage, errorRange, trans, sX = 0, sY = 0, eX = 0, eY = 0)
{
    WinGet, Title, ID, BlueStacks App Player
    If(Gdip_ImageSearchWithdHwnd(Title, ClickX, ClickY, CKImage, errorRange, trans, sX, sY, eX, eY))
    {
        return true
    }
}
;Gdip 함수 ▲
 
 
getlog(a)
{
    gui,submit,nohide
    global 로그넘버
    로그넘버 ++
    b=%로그넘버%
    guicontrol,,로그,%A_mon%/%A_MDay% %A_Hour%:%A_Min%:%A_Sec% %a%|| 
    FileAppend,[%A_mon%/%A_MDay% %A_Hour%:%A_Min%:%A_Sec%][%a%]`n, log.txt
}
;로그기록 함수 ▲ 
 
 
F1::
Loop
{
    If(IsImageCheck(x, y, "이미지\icon.bmp",60,0))
    {
        Click(x, y)
        getlog("세나에 접속합니다")
    }
    else
    {
        getlog("이미지\icon.bmp 못찾음")
    }
    If(IsImageCheck(x, y, "이미지\into.bmp",60,0))
    {
        Click(x, y)
    }
    else
    {
        getlog("이미지\into.bmp 못찾음")
    }
    If(IsImageCheck(x, y, "main.bmp",60,0))
    {
        getlog("세나 실행 완료")
    }
    else
    {
        Send(Esc)
        getlog("ESC")
    }
}
return
cs

  • 할거엄따구 2016.07.20 17:01

    잘찾아보시면 이미지가 나올때까지 기다리는 함수들이 있을텐데요..

    간단하게 예를 들면, 위에 작성하신 IsImageCheck라는 함수는 단발성인것 같습니다.

    이미지를 기다리게하려면 Loop와 sleep등을 사용하여 작성이 가능합니다.

    ex)

    Loop

    {

    if IsImageCheck(x,y, "이미지\icon.bmp", 60,0)) ; 이미지를 찾으면

    {

    click(x,y)

    break ; Loop 빠져나가기

    }

    sleep,1000

    }


    이런식으로 구성하게되면 icon.bmp에 해당하는 이미지가 화면에 나타날때까지 1초 간격으로 저 이미지만 찾게 됩니다.


    도움이 되셨으면 좋겠습니다.


List of Articles
분류 제목 글쓴이 최근변경 추천
질문 RunWait에 관하여 질문드립니다. 2 낙길 2016.07.30 0/0
질문 영군 무한혼탑 좀 짜주실분 없을까요?... 라티엠 2016.07.25 0/-3
질문 붉은보석 게임가드나 핵쉴드 우회 2 RYORI 2017.01.08 0/0
자유 ahk파일 뜯으면서 공부하려고 하는데 4 에데루스 2016.07.29 0/0
질문 오버워치 인게임 픽셀서치 문제입니다 2 플레이 2018.02.03 0/0
질문 오토핫키 버전 어떤거 사용하시나요? 4 가족오락관 2016.07.25 0/0
질문 PushBullet 스마트폰에서 보낸 채팅내용 PC에서 가져오... 1 Atoka 2016.07.28 0/0
질문 로그 질문드립니다. 1 PlusK 2016.07.20 0/0
질문 안녕하세요~ 도움이 필요합니다 ㅠ 3 노력은옳아 2016.07.19 0/0
질문 메모장 첫줄 복사했다 지우고 1 이성진po 2016.07.18 0/0
질문 gdip을 이용하여 범위 비활성서치법 5 러비 2016.07.17 0/0
질문 Call to nonexistent function 질문드립니다 2 PlusK 2016.07.17 0/0
질문 고수님들께 질문드립니다.. 2 자냐앙 2016.07.17 0/0
질문 질문드립니다 8 PlusK 2016.07.16 0/0
질문 메이플 숫자 인식 질문! notes5 2016.07.14 0/0
질문 문자인식? 질문요 3 셋쇼마루 2016.07.13 0/0
질문 비활성클릭 함수호출이 2번이상안되네요 ㅠㅠ 3 zinco 2016.07.17 0/0
질문 인터넷익스플로러를 통한 매크로 작성중입니다 질문좀 ... 2 welchs 2016.07.13 0/0
자유 오토핫키 처음 입문하는 뉴비입니다 6 라니오스 2016.07.12 0/0
질문 postmessage 입력이 안되는데 2 모닝커피 2016.07.11 0/0
Board Pagination Prev 1 ... 112113114115116117118119120 ... 209 Next
/ 209

전체 최신 인기글

전체 주간 인기글