매크로

조회 수 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
분류 제목 글쓴이 최근변경 추천
자유 블루스택과 녹스에서 히트 돌릴때 색상차이 8 와이로 2017.11.09 4/0
질문 블루스택에서 ESC키 입력하는 법 질문드립니다. 2 amoure 2016.03.04 0/0
질문 블루스택에서 비활성 클릭하기 2 cis105 2017.06.30 0/0
질문 블루스택에서는 gdip로 이미지서치가 가능한가요? 4 walter 2016.02.28 0/0
자유 블루스택은 이미지 서치보다는 픽셀 서치를 이용하는게... 11 묵비권 2015.01.05 0/0
질문 블루스택을 이용한 모바일웹도 가능할까요? 2 오켕 2016.02.16 0/0
질문 블루스택을 인식을 못하는건지 ㅠㅠ 도와주세요 12 247천사잉 2016.05.31 0/0
질문 블루스텍 구동시 화면깨짐 현상.. 1 흑염제 2015.04.15 0/0
질문 블택 postmessage 되긴하는건가요 ㅠㅠ? 1 스춥파츄 2015.07.13 0/0
질문 블택2 adb방식으로 매크로 제작중에 있는데요.. 해상도... 깜장별 2017.07.02 0/0
자유 블택2 비활성클릭 성공하신분 잇으신가요 .. 4 미천성 2016.03.30 0/0
질문 블택2 비활성클릭 안되나요? 3 수지가좋아 2016.10.25 0/0
질문 블택2와 블택의 adb 활용법이 틀린가요? 11 flem 2016.10.30 0/0
질문 블택에서 이미지서치 관련 질문입니다. 2 도영이아빠 2015.12.10 0/0
질문 블택윈도우화면 위로 Gui 텍스트 글자 보이게 하기 3 제주소나이 2015.04.22 0/0
질문 블택으로 세나 매크로 돌릴려고 하는데요.. 프로포스 2015.01.09 0/0
질문 비교연산자 >랑 < 질문입니다 3 adde 2017.09.01 0/0
질문 비발디(vivaldi) 브라우저에서 단축키가 안먹히네요? 리엔니케니스타 2017.04.24 0/0
질문 비쥬얼 스튜디오로 오토핫키 만들고 싶습니다. 룬룬리루 2017.08.15 0/0
자유 비트코인 시세 뷰어?? 6 Hangoon 2017.12.16 0/0
Board Pagination Prev 1 ... 899091929394959697 ... 209 Next
/ 209

전체 최신 인기글

전체 주간 인기글