매크로

조회 수 672 추천 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
분류 제목 글쓴이 최근변경 추천
질문 리스트뷰 행 부분에 색상입힐수는 없을까요? 우후훅 2015.06.24 0/0
자유 젤 처음에 오핫키로 짠 소스보니 추억이 살포시 나네요~ㅎ 4 칼시이나 2015.06.27 0/0
질문 DDL을 통해 Winget으로 지니모션 창을 따올때.. 5 아잉뿌잉 2015.06.24 0/0
질문 postmessage 드래그 질문드립니다. 3 칼시이나 2015.06.30 0/0
정보 항상위에있는 메모장 스크립트 성지순례왔다 2015.06.21 0/0
질문 구이 좌표 따는법 1 _Crash 2015.06.21 2/0
질문 AHK를 배울수 있는 책을 없을까요? 5 블루조이 2015.06.26 0/0
질문 노트북 이미지서칭만 안되요! 제발 도와주세요(사례) 12 세macro 2015.06.27 0/0
질문 adb 이용 블루스택 화면 캡쳐... 열감기 2015.06.20 0/0
질문 ListView 에 대해 또 질문드립니다.ㅠ 3 우후훅 2015.06.26 0/0
질문 edit 할때 보이던 active window info 아이콘이 안보... 2 푸른호수 2015.06.20 0/0
질문 오핫 잘 사용되다.. 문제가 생겻습니다.. 흠 7 궁금증호야 2015.06.20 0/0
질문 이미지서치 정확도질문 3 컴팩 2015.06.20 0/0
질문 마우스 HOVER 방법을 아직 못찾았네요. 4 우후훅 2015.06.22 0/0
질문 Progress바 적용하는 방법이 궁금합니다. 7 우후훅 2016.09.05 0/0
정보 활성화된 창으로 esc보내는 라이브러리. 1 헐키 2015.06.19 0/0
질문 GUI Combobox (콤보박스) 에 대한 질문좀 드립니다. 4 우후훅 2015.06.19 0/0
질문 이미지를 서치한후 그이미지에 랜덤클릭이 가능한가요? 6 서추저사 2017.10.28 0/0
질문 캡쳐프로그램을 제작하고싶은데요.... 2 _Crash 2015.06.19 0/0
질문 ova 원클릭 실행 문의 2 GN3 2015.06.19 0/0
Board Pagination Prev 1 ... 160161162163164165166167168 ... 209 Next
/ 209

전체 최신 인기글

전체 주간 인기글