매크로

조회 수 236 추천 0 댓글 12

이제 막 오토핫키를 접해서 사용하고 있는 뉴비인데요


간단하게 테스트를 위해 체크 박스 하나를 체크 해두어 


그게 실행되면 블루스택내 제가 뜬 이미지를 클릭하는 걸 만들었는데요.. 


블루스택창 위에 아무것도 없고, 깨끗한 상태루 해놨는데 블루스택 이미지를 클릭 할 생각을 안하네요.. ㅠㅠ


코드입니다.


; global 변수

global 매크로시작 := false


WinActivate, BlueStacks App Player

WinGetPos, winX, winY, winW, winH, %ActiveID%

ActiveID := "BlueStacks App Player"


SysGet, WindowCaptionHeight, 4 ; 캡션Height

SysGet, WindowBorderWidth, 32 ; 보더Width

SysGet, WindowBorderHeight, 33 ; 보더Height



Button시작:
{
Gui, Submit, nohide
매크로시작 := true
While(매크로시작 = true)
{
CoordMode, pixel, Screen
CoordMode, Mouse, Screen
WinGetPos, pos_x, pos_y, Width, Height,%ActiveID%
x_right := Width + pos_x
x_bottom := Height + pos_y
if (honor =1)
{
명예보내기()
}
break
}
}
return

명예보내기()
{
Gui, Submit, nohide

Loop
{
if ( ClickImage( "img\honor\소셜.bmp" ) = 1)
{
ClickImage( "img\honor\친구.bmp" )
break
}
}
}

ClickImage(img, seconds=0, fromX=0, fromY=0, toX=0, toY=0) {
    Sleep, 10
CoordMode, Pixel, Screen

    result := CheckImage( img, seconds, x, y, fromX, fromY, toX, toY)
    If (result = 1)
    {
        global ActiveID

        WinGetPos, winX, winY, winW, winH, % ActiveID

        px:=x-winX-WindowBorderWidth+10
        py:=y-winY-WindowBorderHeight-WindowCaptionHeight+20

        p := px|py<<16

        PostMessage, 0x201, 0, %p%, , % ActiveID
        PostMessage, 0x202, 0, %p%, , % ActiveID
    }

    Sleep, 200
    Return result
}

CheckImage(img, seconds=0.3, ByRef imgX="", ByRef imgY="", fromX=0, fromY=0, toX=0, toY=0) {
    global ActiveID
CoordMode, Pixel, Screen
    Sleep, 10

    If ( ActiveID)
        WinGetPos, winX, winY, winW, winH, % ActiveID%
    Else
        winX := 0, winY := 0, winW := A_ScreenWidth, winH := A_ScreenHeight

    sleepTime := 100
    times := seconds * (1000 / sleepTime)
    If ( times=0)
        times := 1

    x := winX, y := winY, w := winX+winW, h := winY+winH
    If (fromX && fromY && toX && toY)
    {
        w := x+toX, h := y+toY, x := x+fromX, y := y+fromY
    }

    Loop, %times%
    {
        ImageSearch, oX, oY, x, y, w, h, *60 %A_ScriptDir%\%img%
        If ( ErrorLevel = 0)
        {
            imgX := oX
            imgY := oY
            Return 1
        }
        Else If ( ErrorLevel = 2)
        {
            MsgBox, , , 이미지 없음 : %img% , 1
            Return -1
        }
        Sleep, %sleepTime%
    }
    Return 0
}

입니다 부탁드려요!! ㅠㅠ 

  • 왜6자냐 2016.05.31 01:08

    첫 몇줄만 읽어봐서 다른곳에선 무슨오류가 있는진 모르겠습니다만

    블루스택 이름이 틀리셨을겁니다.

     Bluestacks App Player

    중간에 대문자가 아니라 소문자입니다

  • 247천사잉 2016.05.31 01:46
    고쳐보고 해보겠습니다 관심 감사합니다! ㅠㅠ 프로세스에 있는 이름 그대로 쓰라고 해서ㅠㅠ
  • 왜6자냐 2016.05.31 01:51
    프로세스 이름이 소문자에요 ㅋㅋㅋㅋ 저도 당했었어요 잘 보세요
  • 247천사잉 2016.05.31 02:27
    소문자로 고쳤는데도 ActiveID := "Bluestacks App Player" 안됩니다.. ㅠㅠ 힝 뭐가 문제인건지..
  • 미분귀신 2016.05.31 02:10

    이런걸 어떻게 하시는지 정말 대단하세요^^ 감사합니다

  • 247천사잉 2016.05.31 03:07

    https://i.imgur.com/suAhDod.png


    이렇게 로그는 찍히는데 정작 클릭을 안합니다.. if 문을 다 통과했다는건데.. ㅠㅠ 살려주십시오

  • 제발등업좀2 2016.05.31 08:24
    ClickImage(img, seconds=0, fromX=0, fromY=0, toX=0, toY=0) {
        Sleep, 10
    CoordMode, Pixel, Screen

        result := CheckImage( img, seconds, x, y, fromX, fromY, toX, toY)
        If (result = 1)
        {
            global ActiveID

            WinGetPos, winX, winY, winW, winH, % ActiveID

            px:=x-winX-WindowBorderWidth+10 ;여기에서 보더 값이 들어있나요? 글러벌 변수로 지정안하셧는데
                                                                값이 없을것같은데요?
            py:=y-winY-WindowBorderHeight-WindowCaptionHeight+20  마찬가지로 보더 랑 캡션 값이 ..들어있는지 확인좀

            p := px|py<<16

            PostMessage, 0x201, 0, %p%, , % ActiveID
            PostMessage, 0x202, 0, %p%, , % ActiveID
        }

        Sleep, 200
        Return result
    }
  • 247천사잉 2016.05.31 08:31
    SysGet, WindowCaptionHeight, 4 ; 캡션Height
    SysGet, WindowBorderWidth, 32 ; 보더Width
    SysGet, WindowBorderHeight, 33 ; 보더Height 이거 말하는건가요?? 지정 되어 있어요
  • 제발등업좀2 2016.05.31 08:49
    지정은 되셨는데 펑션에서 그값을 가져다 쓰시잖아요.. 글로벌 변수로 지정 안하셔셔.. 혹시 펑션에서 그값이 제대로 들어가나싶어서요
  • 제발등업좀2 2016.05.31 08:50
    액션아이디 같은 경우 글로벌로 지정 하셨기때문에 펑션에 그값이 들어갈테지만.. 보더와캡션은 글로벌 변수로 지정 안하셨기때문에 안들어가지않을까요? 펑션애서의 변수는 펑션안에서만 적용 되니까요
  • 247천사잉 2016.05.31 11:09
    한번 글로벌 지정 해보겠습니다
  • 247천사잉 2016.05.31 15:42
    global ActiveID, WindowCaptionHeight, WindowBorderWidth, WindowBorderHeight .. 안됩니다.. ㅠ 이렇게 했는데..아 .. 미치겠네요

List of Articles
분류 제목 글쓴이 최근변경 추천
질문 질문합니다.. 5 셋쇼마루 2016.06.05 0/0
질문 autohotkey 에러 뜨면서 꺼지는데ㅠㅠ 1 세나세린세나 2016.06.03 0/0
질문 Gdip 이미지서치에서요 4 셋쇼마루 2016.06.03 0/0
질문 비활성 클릭 하나 질문드려요.... 14 colt 2016.06.02 0/0
자유 Gdip 지정된 좌표 사각형으로 캡쳐하기! 8 셋쇼마루 2016.10.29 2/0
질문 블루스택 감지 관련 문제 해결좀 부탁드려요 ㅠ 2 247천사잉 2016.06.02 0/0
질문 이게 무슨 오류인가요? 5 셋쇼마루 2016.05.31 0/0
질문 GDIP 튜토리얼 해보신분 있나요? 프리 2016.05.31 0/0
질문 GUI 에서 입력받은 문자열 출력 질문입니다. 4 우리강아지 2016.06.03 0/0
질문 이미지서치후에 2 셋쇼마루 2016.05.31 0/0
질문 스샷과 adb관련 밑에 글 보고 질문드립니다. 1 우리강아지 2016.06.01 0/0
질문 블루스택을 인식을 못하는건지 ㅠㅠ 도와주세요 12 247천사잉 2016.05.31 0/0
질문 Gdip 서치 질문이요 ㅠㅠ 2 셋쇼마루 2016.05.31 0/0
질문 구글번역Api 이것 되시는분 2 우후훅 2016.06.14 0/0
질문 구이 창 질문합니다 4 셋쇼마루 2016.05.30 0/0
자유 GUI 꾸미기 7 이무 2016.05.30 0/0
질문 함수 winmove 질문드립니다 4 PlusK 2016.05.29 0/0
질문 매크로짠걸로 친구컴에다 실행하니 이미지를 못찾습니다 5 welchs 2016.08.09 0/0
질문 변수를 직접 실행 할수 있나요? 2 MC하얀늑대 2016.05.29 0/0
질문 녹스 비활성 키보드입력 3 그랑데이션 2016.05.28 0/0
Board Pagination Prev 1 ... 117118119120121122123124125 ... 209 Next
/ 209

전체 최신 인기글

전체 주간 인기글