매크로

조회 수 4532 추천 0 댓글 13
SideSync 3.0으로 폰을 연결해서 테스트 중인데...?
이미지는 찾아지는데, 그 다음 sendClick 액션이 아무런 반응이 없습니다.?

3시간 동안 이런저런 테스트를 해봐도.. 무엇이 문제인지 모르겠으니.. 답답해 죽겠네요 ㅜㅜ
뭔가 잘못된 내용이 있나요?

소스는 아래와 같습니다.?

#NoEnv?
coordmode, pixel, screen
SetWorkingDir %A_ScriptDir%
SetTitleMatchMode, 2
ActiveID:="PSS"
WinActivate, %ActiveID%
WinGetActiveTitle, %ActiveID%

; ================================ 본문시작 =========================================

[:: ;start

main:

if(imageSearcher(x,y, "테스트.bmp")=1)
{
sendClick(x,y)
msgbox, 찾았다. 요놈!?
;MouseClick, l, 420, 450
}
else?
{
msgbox, 이미지가 안보여요.
}

]::pause
\::reload

; =============================== 함수선언 ==========================================

;이미지 서치
imageSearcher( ByRef imgX, ByRef imgY, img)?
{
? ? global ActiveID
? ? WinGetPos, winX, winY, winW, winH, %ActiveID%

? ? ImageSearch, oX, oY, winX, winY, winX+winW, winY+winH, *50 %A_ScriptDir%\%img%
? ? If ( ErrorLevel = 0)
? ? {
? ? ? ? imgX := oX
? ? ? ? imgY := oY
? ? ? ? return 1
? ? }
? ? else If ( ErrorLevel = 1){
? ? ? ? return 0
? ? }
}

;클릭
sendClick( x, y) {
? ? global ActiveID
? ? WinGetPos, winX, winY, winW, winH, %ActiveID%
? ? SysGet, capH, 4 ; 캡션Height
? ? SysGet, bordW, 32 ; 보더Width
? ? SysGet, bordH, 33 ; 보더Height

? ? px:=x-winX-bordW
? ? py:=y-winY-bordH-capH

? ? p := px|py<<16

? ? PostMessage, 0x201, 0, %p%, , %ActiveID%
? ? PostMessage, 0x202, 0, %p%, , %ActiveID%
? ? Sleep, 200
? ? Return
}

sendClick2( x, y)?
{
? ? global ActiveID
? ? SysGet, capH, 4 ; 캡션Height
? ? SysGet, bordW, 32 ; 보더Width
? ? SysGet, bordH, 33 ; 보더Height

? ? px:=x-bordW/2
? ? py:=y-bordH/2-capH

? ? p := px|py<<16

? ? PostMessage, 0x201, 0, %p%, , %ActiveID%
? ? PostMessage, 0x202, 0, %p%, , %ActiveID%
? ? Sleep, 200
? ? Return
}

;서치앤클릭
imageSearchClick(img)?
{
? ? If imageSearcher( x, y, img) = 1?
? ? {
? ? ? ? sendClick( x, y)
? ? ? ? Return 1
? ? }
? ? Return 0
}

;이미지 찾을때까지 대기
waitImage(img) {
? ? Loop {
? ? ? ? If imageSearcher( x, y, img) = 1?
? ? ? ? {
? ? ? ? ? ? Break
? ? ? ? }
? ? ? ? Sleep, 500
? ? }
? ? Sleep, 200
? ? Return
}

;이미지 찾을때까지 대기후 클릭
waitImageClick(img) {
? ? Loop {
? ? ? ? If imageSearchClick( img) = 1
? ? ? ? {
? ? ? ? ? ? Break
? ? ? ? }
? ? ? ? Sleep, 500
? ? }
? ? Sleep, 200
? ? Return
}

  • theruin 2015.01.20 13:50

    WinTitle 이 일치하지 않아서 안되는거 같은데 확인한번 해보세요.

    클릭함수에서


    PostMessage, 0x201, 0, %p%, , %ActiveID%


    이거 전에 msgbox로?ActiveID 출력해서 확인한번해보세요

  • profile
    시나브로 2015.01.20 14:16
    음.. Msgbox, %ActiveID% 로 확인해보니.. PSS 로 정상적으로 나옵니다. ㅜㅜ
    뭐가 문제인지 참.. 갑갑하네요.
  • theruin 2015.01.20 14:29
    클릭하려는 창 타이틀이 pss 인가요? 지니모션이 아닌가 보네요. 지니모션이 아니라면 controlclick으로 한번 해보세요. posetmessage가 안 먹히는 것일수도 잇어요
  • profile
    시나브로 2015.01.20 15:05
    네. 창 타이틀이 PSS 입니다.

    그리고 controlclick 은 제가 생소해서 그런데.. 위 스크립트에서 적용하려면,

    if(imageSearcher(x,y, "테스트.bmp")=1)
    {
    ControlClick , x%X% y%Y%, PSS
    }

    이런 형태가 되면 되나요?
  • theruin 2015.01.20 15:19
    사용법은 맞는데 좌표는 계산을 해줘야될겁니다. Client 좌표 사용해야 될겁니다. 클릭함수에서 px,py값 넣으시면 될거에요
  • profile
    시나브로 2015.01.20 15:28
    으아아아아!! 드디어 됩니다. ㅜㅜ
    Client 값 넣어주니.. 클릭하네요.. 감사합니다..ㅜㅜ

    if(imageSearcher(x,y, "테스트.bmp")=1)
    {
    ControlClick , x420 y450, PSS
    msgbox, 찾았다. 요놈!
    }
    else
    {
    msgbox, 이미지가 안보여요.
    }
  • theruin 2015.01.20 15:33
    postmessage 안되고 controlclick 만 되는건가요? 역시 그런건가요!!
  • profile
    시나브로 2015.01.20 15:37
    그런가봐요 ㅜㅜ

    ControlClick , x420 y450, %ActiveID% 도 잘되네요!
    덕택에 해결했습니다.

    감사합니다~!
  • 깨꿍 2015.01.20 14:30

    sendClick()함수에서 클릭하는 좌표가 찾은이미지 왼쪽위 꼭지점이네요.

    해당 부분이 클릭이 안되는 지점이거나....흠...하여간...

    혹시 모르니 왼쪽위 꼭지점에서 x,y좌표를 살짝씩만 안으로 값을 변경해보세요.

    px:=x-winX-bordW/2???? ;좌우보드(테두리)값의 절반만큼 우측으로

    py:=y-winY-bordH/2-capH? ; 상하보드(테두리)값의 절반만큼 아래쪽으로

    px:=x-winX-bordW/3

    py:=y-winY-bordH/3-capH
    요런식으루요.

    그런데...함수에 imageSearchClick(img)가 있는데 일부러 테스트하시는건가요?
    다음처럼 줄일수 있어요.

    if imageSearchClick("테스트.bmp")=1?? ;찾아서 클릭한 후 값리턴이 1이라면
    ???? msgbox, 찾아서 클릭했네?
    else????????????????????????????????????????????????????? ;이미지 못찾은경우
    ???? msgbox, 얼래 이미지 어디간겨?

    그리고...테스트하는 창이 안드로이드 에뮬레이터라면 설정의 개발자환경에서 터치포인트 체크하고 확인해보세요.

  • profile
    시나브로 2015.01.20 14:49
    좌표가 문제가 있나 싶어서..
    이미지도 다른것들로 교체도 해보고..
    좌표값이 문제인가 싶어서 수정도 해보고 했는데..그래도 무반응이네요.

    말씀하신대로 if imageSearchClick("테스트.bmp")=1 로 테스트해봐도, msgbox 는 찾아서 클릭했네? 가 뜹니다.
    그런데 실제로 클릭이 되지는 않네요. ㅜㅜ

    아.. 어제부터 완전 답답합니다..
  • 깨꿍 2015.01.20 14:51

    그럼...결국 PostMessage가 안먹힌다는 얘기밖에 안되네요.

    혹시 모르니 타이틀(activeid) 자리를 ahk_id %id%로 바꿔보세요.

    그전에 id := WinExist("PSS")

    그런데...어떤 윈도우창인데 그러죠?

  • profile
    시나브로 2015.01.20 14:55
    sidesync 3.0 으로 연결한 핸드폰 화면입니다.
  • 깨꿍 2015.01.20 15:12
    sidesync는 사용해보질 않아서 모르겠군요.

List of Articles
분류 제목 글쓴이 최근변경 추천
질문 몽길이 메클 질문드립니다... 1 헬로시드니 2014.12.09 0/0
질문 절전모드 전부 해제 시켰는데도 잘 때 매크로가 멈추네요 2 FKILLER 2014.12.14 0/0
질문 오토핫키가 다루기가 어려울까요? 7 그냥그래요 2014.12.13 0/0
질문 오토핫키 실행시키고.......... 3 맹물도사 2014.12.11 0/0
질문 비활성매크로 PostMessage 사용 시 클릭이 안되는 문제 13 시나브로 2015.01.20 0/0
질문 포스트메시지를 사용하여 조합키를 보낼수있을까요? 3 클래식나인 2014.12.15 0/0
질문 Dropdownlist 에 항목을 추가 하는 방법이 궁금합니다 3 레이븐 2014.12.16 0/0
질문 오토핫키 내에서 프로세스를 여러개 돌릴 경우 질문 4 클래식나인 2014.12.24 0/0
질문 오토핫키 메세지 박스 시간지나서 없어지게 하는방법좀... 6 맥스류 2015.01.03 0/0
자유 [잡담]요즘들어 매크로 만들고싶은 욕구가 점점 강해지... 9 외치기 2014.12.19 0/0
질문 이미지 서치 관련 질문점 드릴께요. 11 히얍 2015.01.20 0/0
질문 오토핫키 복사 ctrl v 명령어 알려주세요 2 튀니지사람들 2015.01.23 0/0
질문 GDI+이용한 screen capture 4 Works 2014.12.24 0/0
질문 오핫 실행전 배너출력 8 파더 2015.01.23 0/0
자유 작업을 하면할수록.. 잘할줄은모르지만.. 영상편집이.. 6 파더 2015.01.16 0/0
질문 WinMove 관련질문... 2 파더 2014.12.19 0/0
질문 컴파일시 다른 파일들도 포함시키고 싶습니다. 4 레이븐 2014.12.24 0/0
질문 오토핫키 질문 6 rh1406 2014.12.17 0/0
정보 윈도우의 타이틀바, 보더 없애는 방법. 7 모바게 2014.12.23 0/0
정보 간단한 단축키 ~ 5 앞프론뒷태 2015.03.13 0/0
Board Pagination Prev 1 ... 67891011121314 ... 209 Next
/ 209

전체 최신 인기글

전체 주간 인기글