매크로

조회 수 143 추천 0 댓글 6

^F1::

coordmode, pixel, realtive
coordmode, mouse, realtive

Loop


{
 A:

 ImageSearch, x1, y1, 1, 1, 1000, 330, *100 1.bmp
 if(ErrorLevel=0)
{
  controlsend,, {d}, le
  controlSend,, {3}, le
  MouseClick, left, %x1%, %y1%
  Sleep, 1100
  MouseMove, 0, 0
  sleep, 200
  gosub, A
}

 B:

 ImageSearch, x1, y1, 1, 1, 1000, 330, *30 2.bmp

 if(ErrorLevel=0)
{
  controlsend,, {d}, le
  controlSend,, {3}, le
  MouseClick, left, %x1%, %y1%
  Sleep, 1100
  MouseMove, 0, 0
  sleep, 200
  gosub, A
}

if(ErrorLevel=1)

{

  controlsend,, {d}, le

  controlsend,, {9}, le

  sleep, 1100 

}
return
^F2::Pause


원래 이런식으로 짜려고 했던 건데


----------------------------------------------------------------

이걸 postmessage 를 이용해보려하는데



gui, add, text, x30 y5 w110 h20, 프로그램
gui, add, button, x20 y25 w110 h20, 시작
gui, add, button, x20 y55 w110 h20, 종료
gui, show

프로그램시작 := false

return

guiclose:
{
 프로그램시작 := false
 ExitApp
}
return

button시작:
{
 guicontrol, , a, 실행중
 
 프로그램시작 :=true


클릭(x1, y1)                        ; 이부분의 값들을 어떻게 변경해줘야할지와
{
 coordmode, mouse, window
 wingetpos, ax, ay, aw, ah, Le
 
 내부좌표x := x좌표 - ax
 내부좌표y := y좌표 - ay
 
 iparam :=  내부좌표x|내부좌표y<<16
 PostMessage, 0x201, 1, %iparam%, , le
 PostMessage, 0x202, 0, %iparam%, , le
}


coordmode, pixel, screen


loop

{

 ImageSearch, x1, y1, 1, 1, 635, 330, *30 1.bmp
 if(ErrorLevel=0)
{
  controlsend,, {d}, le
  controlSend,, {3}, le

  클릭(x1, y1)                     ;  저게 해결이 되면 이부분을 이렇게 해주면 될까요?
  Sleep, 1100
  gosub, button시작
}

 ImageSearch, x1, y1, 1, 1, 635, 330, *30 2.bmp

 if(ErrorLevel=0)
{
  controlsend,, {d}, le
  controlSend,, {3}, le

 클릭(x1, y1)
  Sleep, 1100
  gosub, button시작
}
 if(errorlevel=1)
{
 controlsend,, {d}, le
 controlsend,, {9}, le
 sleep, 1100
 
}

}
}
return

button종료:
{
 매크로시작 := false
 ExitApp
}
return


  • GTS3 2016.03.30 20:14
    screen 모드로 통일해야해요
  • jh91 2016.03.30 20:39
    screen으로 통일만 시켜주면 되나요?
  • 리체 2016.03.30 20:41

    일단은 활성창이든 아니든 coordmode, 어떤것이든 상관없습니다.

    모드의 정의와 상관없이 포스트메시지는 해당 윈도우의 클라이언트 좌표가 기준입니다.


    클릭(x1, y1)                        ; 이부분의 값들을 어떻게 변경해줘야할지와
    {
     coordmode, mouse, window ;여기서 window는 relative와 동일한 용어입니다. 할 필요가 없습니다.
     wingetpos, ax, ay, aw, ah, Le ;wingetpos는 스크린이 기준입니다. 또한 Le에 대한 정의가 없습니다.

    ;위 본문에서는 이 명령어가 필요치 않습니다.

    ;wingetpos가 필요할때는 넘겨받은 좌표가 screen좌표일때입니다.
     
     내부좌표x := x좌표 - ax ;
     내부좌표x := x1-border
     내부좌표y := y좌표 - ay ; 
    내부좌표x := y1-caption-border
     ;위의 x1, y1값은 relative 좌표라고 가정할때의 계산입니다.

     ;border는 테두리 크기이고, caption은 제목높이입니다.

     ;당연하게도 아직 정의되지 않았으니 값은 구해서 넣으셔야 합니다.

     ;만약, x1, y1값이 client값이라면 위의 계산은 할 필요가 없습니다.


     iparam :=  내부좌표x|내부좌표y<<16
     PostMessage, 0x201, 1, %iparam%, , le ;역시 le에 대한 정의가 없음
     PostMessage, 0x202, 0, %iparam%, , le
    }


    정리되시면 다시 올려보세요.

  • 제발등업좀2 2016.03.30 20:50
    언제봐도.. 명쾌하게 답변주시네요 ^^ 대단하십니다 이리 정성스럽게 ㅎㅎ
  • jh91 2016.03.30 20:51
    wingotpos, ax, ay, aw, ah, le 여기서 le 이부분은 window title 부분이 아닌가요? 그래서 창이름을 le라 준건데..

    x1, y1 의경우에는 그냥 변수로두고 border 값과 caption 값만 빼주면 되는건가요
    아니면 x1, y1의 relative 값을 넣어 줘야하는건가요
    지금 하려는 창의 크기가 relative 좌표가 끝에서 끝까지가 0,0,635,330 인데
    좀 어렵네요 ... 그냥 이미지서치만 쓰면 간단한거같은데
    창은 띄워놓고 다른 것을 하려고 만드려니 힘드네요
  • 리체 2016.03.30 21:58

    윈도우 타이틀을 le 로 만드셨다면 맞습니다. 보통은 이리 간단하게 만들지 않아서 정의되지 않은줄 알았습니다.

    그런데, 위에는 Le 로 쓰고, 아래는 le로 사용하셨네요.

    타이틀은 대소문자를 정확히 구분해줘야 합니다.

    먼저, 함수에 대한 정의와 사용법을 확실히 익히세요.
    - 예지력1님의 강좌가 모두 사라졌군요. 아쉽네요.

    미약하나마..
    https://tailstar.net/10903034


List of Articles
분류 제목 글쓴이 최근변경 추천
질문 postmessage에서 인자로 쓰이는 윈 타이틀 2 우리유미씨 2016.03.26 0/0
질문 postmessage에 wparam 이부분은 어떤매개변수인가요? 1 삽재 2014.12.30 0/0
질문 postmessage명령어와 이미지서치 명령어 사용에 관해 ... 3 앙꼬호빵 2014.09.28 0/0
질문 postmessage를 함수로 만들려는데.. 6 아카드 2014.11.10 0/0
질문 PostMessage를 이용한 비활성화 이미지서칭->클릭 질문 4 이그쨔 2016.01.02 0/0
질문 postmessage를 gui에서 받아와서쓰는방법 1 뚜르따르또르 2017.12.18 0/0
질문 postmessage로 dragNdrop 7 sama 2018.10.23 0/0
질문 Postmessage관련 질문 Param값 printscreen키 존재하나요? 허럴럴렁 2016.01.11 0/0
질문 Postmessage가 작동을 안합니다 3 샌드위치 2019.07.30 0/0
질문 Postmessage가 IE에서는 안되네요 1 김댕 2016.01.08 0/0
질문 postmessage 활성창일 땐 되는데, 2 유한 2018.05.28 0/0
질문 PostMessage 클릭 질문있어요 4 땅콩이 2017.08.14 0/0
질문 postmessage 클래스 값 질문드립니다. Rasik 2018.06.21 0/0
질문 PostMessage 질문좀요 1 허밍의지 2015.07.12 0/0
정보 postmessage 질문이 와서 올립니다. (중복가능성) 12 생물 2015.01.01 2/0
질문 postmessage 질문요 완전 초보 2 간사 2017.07.04 0/0
질문 postmessage 질문드립니다. 이미지 6 jh91 2016.03.30 0/0
질문 Postmessage 질문 3 카둠 2016.08.09 0/0
질문 postmessage 좌표 오류 Realtive , Client 만큼의 차이? 신령공주 2016.05.22 0/0
질문 postmessage 입력이 안되는데 2 모닝커피 2016.07.11 0/0
Board Pagination Prev 1 ... 174175176177178179180181182 ... 209 Next
/ 209

전체 최신 인기글

전체 주간 인기글