오토핫키 커뮤니티

조회 수 680 추천 0 댓글 7
사용하고 있는 함수 :?http://tailstar.kr/autohotkey_tips/3927931

1. 매크로 설명
- 파란색 테두리 안과 같은 이미지를 찾으면 찾은 좌표값의 아래y값(빨간색 테두리성모양)를 클릭
https://i.imgur.com/qZSkmiO.png


2. 사용중인 스크립트 소스

;?GUI인터페이스 소스
Gui, Add, Button, x12 y9 w170 h40 gStart, 시작
Gui, Add, Button, x12 y59 w170 h40 gStop, 정지
; Generated using SmartGUI Creator 4.0
Gui, Show, x649 y377 h111 w198, New GUI Window
Return

GuiClose:
ExitApp
Return
;-----------------------------------------------;



; 마우스 함수
Click(x, y) ; Click 함수, BlueStacks에 PostMessage를 통해 마우스 다운가 업 보냄
{?
? Coor := x | y<<16 ; 클릭할 x, y 좌표를 PostMessage 좌표 형식에 맞게 변환
? PostMessage, 0x201, 1, %Coor%,, BlueStacks App Player ; 마우스 왼쪽 버튼 다운, 좌표 Coor
? PostMessage, 0x202, 0, %Coor%,, BlueStacks App Player ; 마우스 왼쪽 버튼 업
? sleep, 50 ; 50ms 대기 (0.05초))
}
;-----------------------------------------------;



; 이미지함수
IsImage(ByRef clickX, ByRef clickY, ImageName) ; Image가 존재하면 true 리턴 및 좌표 clickX, clickY 저장
{
? CoordMode, Pixel, Screen ; Pixel, Screen 모드
? WinGetPos, posX, posY, width, height, BlueStacks App Player ; 블루스택의 위치 및 너비 높이 저장

? appWidth := posX + width ; 블루스택 우측 하단 x 좌표 appHeight := posY + height ; 블루스택 우측 하단 y 좌표
? ImageSearch, vX, vY, posX, posY, appWidth, appHeight, *30 %ImageName% ; ImageName 이미지 검색
? IfNotExist, %ImageName% ; ImageName 파일이 존재하지 않다면
? return false ; false 리턴

? if (ErrorLevel = 0) ; 이미지를 찾았다면
? {
? ? clickX := vX - posX ; 스크린상의 좌표를 블루스택 내부 좌표로 변환
? ? clickY := vY- ?posY
? ? return true ; true 리턴
? }

? if (ErrorLevel = 1) ; 이미지를 찾지 못했다면
? {
? ? clickX := 0
? ? clickY := 0
? ??return false ; false 리턴
? }
}
;-----------------------------------------------;



Start: ; 스테이지 시작

Loop
{
? if(IsImage(clickX, clickY, "Image\StageClick.bmp"))
? {
? ? ; 여기 이부분에 어느 코드를 작성해야 되나요?.. 너무 노골적으로 물어보는건가요..ㅠㅠ ㅈㅅ
? ? ; Y:= -값 을 줘야하는건가요?
? ? Click(clickX, clickY)
? }
}
Return




  • 제발등업좀2 2015.07.07 17:47
    클릭펑션 에 xy값에.. 클릭하실려는곳좌표를 집어넣으시면 되는거 아닌가요???
  • 마토깽 2015.07.07 18:15
    화살표 이미지가 다른 영역에서도 뜨는 거라서요.
  • 제발등업좀2 2015.07.07 18:46
    아.. 저 성모양.. 위에 저 어이콘이뜨는가보네요??? 맞나요??
    그럼 간단히
    xx:=x+100
    yy:=y+100

    이런식으로 보정값만.. 더 주셔도 될껏같은데요???
  • 마토깽 2015.07.07 19:06
    한번 해보겠습니다 ㅎ 댓글 감솨용
  • 리체 2015.07.07 20:38

    위의?IsImage 함수에서 계산된?값은 활성창일때의 좌표입니다

    Click(clickX, clickY) 함수는 포스트메시지를 사용하므로

    그대로 적용시키면 클릭지점이 협소한 경우, 오류가 발생할수밖에 없습니다.

  • 리체 2015.07.07 20:49

    appWidth := posX + width ; 블루스택 우측 하단 x 좌표 appHeight := posY + height ; 블루스택 우측 하단 y 좌표

    또한 위의 문구를 그대로 사용하였다면,?appHeight := posY + height 이변수의 정의는 주석처리되었으므로

    아래 이미지서치는?제대로 작동되지 않습니다.

    하나 더,

    IfNotExist, %ImageName% ; ImageName 파일이 존재하지 않다면
    ? return false ; false 리턴
    이 문구는 이미지서치전, 즉 함수안 처음에 위치하는것이 좋습니다.

  • 리체 2015.07.07 21:05
    ? ? ; 여기 이부분에 어느 코드를 작성해야 되나요?.. 너무 노골적으로 물어보는건가요..ㅠㅠ ㅈㅅ
    ? ? ; Y:= -값 을 줘야하는건가요?

    위의 댓글을 통해 코드를 수정하였다면, 그림상의 포인트를 계산해 y값만 + 시켜주면 됩니다.






List of Articles
분류 제목 글쓴이 최근변경 추천
질문 Gui child parent 관계에서 gui var 가져오기 방법 질... 14 아잉뿌잉 2015.07.09 0/0
질문 별되하는사람님 adb에 관한 부분을보다가 이미지서치 ... 20 투혼레몬 2015.07.08 0/0
자유 밀크탭 for kakao(블루스택전용 연타매크로) - 비활성 ... 로맨티스트 2015.07.08 0/0
질문 팁게에 올라온 비활성 스크립트로 매크로 짜고 있는데요. 7 마토깽 2015.07.07 0/0
질문 혹시 항상 창을 활성화시킬수는 없을까요? 4 투혼레몬 2015.07.07 0/0
질문 오토핫 질문입니다 6 알렉트론 2015.07.06 1/0
질문 winhttp 로 카페목록뽑와와습니다.. 5 제발등업좀2 2015.07.23 0/0
정보 이미지파일 세밀하게 캡쳐하기 12 부비수달 2017.08.13 0/0
질문 오토핫키 gui에 관해서.... 4 부비수달 2015.07.05 0/0
자유 오토핫키 ...질문 및 요청좀 ㅠ.ㅠ 17 강남몬드 2015.07.08 0/0
질문 [질문]듀얼모니터 가상 화면으로 보내기 + 위치고정 춥다람쥐 2015.07.05 0/0
질문 DLL관련 변수선언, Guicontrol관련 질문. 2 아잉뿌잉 2015.07.06 0/0
질문 getkeystate 정지 시키는방법도 잇나요? 2 바유무 2015.07.04 0/0
질문 오토핫키를 통해서 블로그 관리도 가능한가요? 5 궁극의 2015.07.07 0/0
질문 아두이노 연동을 통한 확장이 될가요? 6 궁극의 2015.07.04 0/0
질문 이미지서치 이미지직접클릭에 대한 질문이있어요 ㅠㅠ 2 투혼레몬 2015.07.03 0/0
질문 Postmessage wparam, lparam 질문입니다. 5 레이븐 2015.07.04 0/0
질문 외치기님이 작성하신 비활성 이미지 함수를 이용중 오... 10 찬늘 2015.11.26 0/0
질문 (GUI) edit에 입력받은 변수로 대기시간을 설정하는 스... 6 잠튕이 2015.07.02 0/0
질문 구이 에 인터넷 창 띄우기 2 제발등업좀2 2015.07.02 0/0
Board Pagination Prev 1 ... 158159160161162163164165166 ... 209 Next
/ 209

전체 최신 인기글

전체 주간 인기글