매크로

조회 수 1019 추천 0 댓글 33

tXIGFpn.jpg


오토핫키를 해보려고 기초적인것부터 하나하나 시도해보려합니다.

우선 위와같이 구이를 만들었습니다.

그냥 3개만 넣었죠..ㅋㅋ


그런데 kbs는 로그인 없이 티비 시청이 가능한데

mbc 나 sbs는 로그인을 해야 하더군요


그래서 mbc는 자동로그인을 해놨는데

로그인버튼을 눌러줘야 되더군요


근데 이왕 배워보는거 해보려고하는데




MMEADPy.jpg



buttonMBC:

run, "C:\Program Files (x86)\Google\Chrome\Application\chrome.exe"\vodmall.imbc.com/player/onair.aspx

return


여기에서

PACQ8rT.png

이 이미지를 찾아서 클릭한다고 한다면 어찌해야 되나요??


질문범위가 너무 광범위한건 아닌지 처음이라 막연하게 질문합니다.ㅠㅠ


  • 모바게 2015.02.25 22:53

    https://www.google.co.kr/webhp?#newwindow=1&q=autohotkey+imagesearch

  • profile
    낭군이 2015.02.25 22:59
    답변 감사합니다. 찾아보면서 이미지 서치에 대한 강의를 좀더 해야겠네요~

    찾다보니 0,0,A_ScreenWidth,A_ScreenHeight, 이렇게하다보면
    전체화면에서 찾는거 같은데

    근데 이 인터넷창이 항상 움직이는데
    움직여도 그 이미지를 클릭하는건 어떻게 해야되나요??
    설명은 좌표로나와있는거 같아서요.ㅠ
    제가 아직 다 못찾아서 그런걸까요?ㅠㅠ
  • 핸콕 2015.02.26 08:48
    이미지서치할때마다, 실행창의 위치를 검색하서 좌표값을 딴후, 그 해당영역을 이미지서치 하는겁니다.
    모바게님의 비활성이미지서치? 공개소스를 참조하세요~
  • profile
    낭군이 2015.02.25 23:12
    buttonMBC:
    run, "C:\Program Files (x86)\Google\Chrome\Application\chrome.exe"\vodmall.imbc.com/player/onair.aspx
    ImageSearch,vX,vY,0,0,A_ScreenWidth,A_ScreenHeight,*50 %A_ScriptDir%\Image\mbc로그인.png
    sleep 5000
    If ErrorLevel = 0
    {
    vx:=vx+20
    vy:=vy+20
    Mouseclick,left, %vX%,%VY%
    }
    If ErrorLevel = 1
    {
    MsgBox, 못찾겠다 꾀꼬리
    }
    return


    이렇게 햇는데 클릭이 안되요 어찌해야되나요??ㅠㅠ
    못찾았다고 메시지박스도안뜨고 클릭도안되고요.ㅠㅠ
  • 핸콕 2015.02.26 08:39

    CoordMode Pixel ,Screen

    buttonMBC:
    run, "C:\Program Files (x86)\Google\Chrome\Application\chrome.exe"\vodmall.imbc.com/player/onair.aspx

    loop

    {

    ImageSearch,vX,vY,0,0,A_ScreenWidth,A_ScreenHeight,*50 %A_ScriptDir%\Image\mbc로그인.png
    sleep 5000
    If ErrorLevel = 0
    {
    vx:=vx+20
    vy:=vy+20

    Mouseclick,left, %vX%,%VY%
    }
    If ErrorLevel = 1
    {
    MsgBox, 못찾겠다 꾀꼬리,1
    }

    sleep 1000

    }
    return

  • 핸콕 2015.02.26 08:44

    흐미..낭군이님이라 자세히 좀 적었더니;;;설명다 쓰고 저장했더니 날라가서;;;

    1. 이미지서치시 어떤 화면을 기준으로 실핼할 것인지 정의 필요
    coordmode, pixel,(screen:전체화면, relaitve:활성화된창, client:활성화된창중 실제 영역)

    2. mbc 실행명령후 바로 이미지서치 -> mbc창은 뜨지도 않았는데 이미지서치하고 실패. 끝..
    ->로그인은 다음에 꼭 나와야 하므로 loop를 넣어서 이미지서치

    3. vx:=vx+20으로 보정..소스가 길어짐..기본적으로 이미지를 자를때 좌측상점이 클릭이 되는 위치로 이미지를 자르세요..

    4. msgbox로 테스트를 하실때는 메시지박스 출현후 "닫기"를 누르시면서 활성화창이 변동되므로 테스트가 됬다 안됬다 하는경우가 많아요..메시지박스가 자동으로 닫히도록 사용하세요~

  • profile
    외치기 2015.02.26 09:21
    어짜피 coordmode screen인데 4번에 활성창 바뀌는거 신경 쓸 필요가 있을까요?
  • 핸콕 2015.02.26 09:28
    나중에 구역설정 서치도 배우실거고, 비활성으로도 넘어가실거고..머 그냥 테스트상 참고하시라고요^^ㅎ
  • profile
    낭군이 2015.02.26 09:59
    핸콧님 답변 감사합니다. 출근하면 확인을못해서 컴터할 시간이 애매해서여ㅠㅠ
    항상 핸콕님 매크로쓰면서 오토핫키의 꿈을 키워온 1인입니다.
    가입한 카페만 6군데인데
    답변은 테일처럼 깔끔해주는 곳은 없는거 같아요 ㅎㅎ

    위에 소스도 우선 복붙해서 만든거라 그다음 명령어를 익히는 중이에요.
    게임을 하면서 프로그램만드는게 재미있는줄 알았네요 ㅎ
    비록아직은 1분이면 만드실 매크로지만요^^

    아무튼 항상 많니 도움받아 감사합니다
  • 핸콕 2015.02.26 10:10
    축하합니다! 게임중독에서 벗어나셨구요...매클중독에 빠지고 계십니다..ㅋ
  • profile
    낭군이 2015.02.26 10:06
    다시 한번 정독하면서 loop를 넣어서 이미지서치를 반복하는군요~
    근데 저렇게 한다고 하면 몇번이나 반복하고 찾고 못찾고를 판단하는지가 궁금하네요~
    또 죄송한데 메시지박스자동으로 닫히게하려면 어떤 구문을 넣어야 하나요?? ㅠㅠ
  • 핸콕 2015.02.26 10:10
    MsgBox, 못찾겠다 꾀꼬리,1 <- ,숫자(초)

    loop 안에서 이미지서치를 해서 클릭을 성공했다면, goto나 break로 loop를 나오는걸 짜셔야겠지요~?
  • profile
    낭군이 2015.02.26 12:24
    오오~ 또 하나 배웠네요~
    근데 이건 sleep 와는 다르네요 sleep는 1초가 1000으로 아는데
    이건 1초가 그냥 1인가보네요~
  • 로뎀나무 2015.02.26 12:22

    일단 이미지서치나 다른 스크립트를 이용해서 변수를 찾고자 할때는

    msgbox를 이용해서 해당 변수값이 내가 원하는 변수값으로 저장이 되는지부터 확인하시고

    그다음 스크립트를 진행해주시면 편합니다.

    어찌보면 가장 기본이 되는 조건이 만족이 되느냐 마느냐 인데..

    그부분을 간과하고 많은 스크립트를 만들고나서 어느부분에서 실행이 안되는지를 따지는 분들이 많으시죠.


    집을지을때 기초공사가 중요합니다.

    매크로도 마찬가지고요.


    오핫키 공부하시면서 매크로를 만드신다면

    스크립트를 사용하기전에 도움말을 참고하셔서 해당 스크립트가 어떻게 작성되고, 어떤 방식으로 구동되는지

    참고 하시면서 만들어보세요.


    저도 그렇게 시작했고 그렇게 하는 것이 공부하시는데 도움이 되리라 생각합니다.

  • 로뎀나무 2015.02.26 12:26
    쓰고보니.. 질문에 대한 답변은 없네요 ㅎ
    핸콕님께서 답변은 잘 하신거 같구요.

    추가하자면
    msgbox 타임아웃은
    msgbox,,,1초후 사라짐,1
    으로 사용하시면 될듯합니다.쿨럭;(버전을 올려서 그런지 콤마가 빠지면 작동이 안되는;;)

    http://zerohyun.egloos.com/5772819

    참고하시면 되겠습니다.
  • profile
    낭군이 2015.02.26 12:28
    로뎀님도 강좌글을 쓰시려고 하시는가 보군요!!
    앞으로도 많은 도움 요청하겠습니다.ㅎㅎㅎㅎ
  • profile
    낭군이 2015.02.26 12:27
    다른분들은 로그를 만들어서 어디에서 작동이 멈췄는지 알아보듯이 말이죠??
    어디가 잘못되어있는지 잘되는지 확인하면서 하란말씀이시군요~~
    조언감사합니다.
    앞으로 많이 공부해서 언제가 될지 모르겠지만 전 강좌글을 쓰고 싶네요~
    저처럼 처음부터 하는 사람들을 위해서요~ㅎㅎ
  • 로뎀나무 2015.02.26 12:29
    저도 오핫키 강좌글을 좀 써보려고요..
    다른 분들을 위해서가 아니고..
    제가 하도 많이 까먹는 부분이 많아서..
    참고용으로;;;
    뭐... 얼마나 할지는 모르겠지만요 ㅎㅎ
  • profile
    낭군이 2015.02.26 12:30
    네 저도요ㅋㅋㅋ 다른사람도 좋지만 우선 제가 까먹으니까요 ㅋㅋ
  • profile
    낭군이 2015.02.26 15:37

    @로뎀나무 블로그강좌 잘보고있습니다. 댓글을 달으려면 로그인을 해야 하는거 같아서 여기다가 씁니다.

    초짜인 저에게는 너무나도 큰 힘이 되는 강좌네요~

  • profile
    낭군이 2015.02.26 19:34

    @핸콕 집에와서 실험해보는데요

    이상하네요,..ㅠㅠ


    로그인창화면이 안뜨면 못찾겠다꾀꼬리메시지 박스가 무한대로 뜨네요

    어떻게 해야 될까요????

    어디가 잘못된걸 까요?ㅠㅠ



    loop

    {

    ImageSearch,vX,vY,0,0,A_ScreenWidth,A_ScreenHeight,*50 %A_ScriptDir%\Image\mbc.png

    If ErrorLevel = 0

    ?{

    Mouseclick,left, %vX%,%VY%

    ?}

    If ErrorLevel = 1

    ?{

    ? ?MsgBox,,, 못찾겠다꾀꼬리,1


    ?}

    ? ?sleep, 1000

    }

    return

  • 로뎀나무 2015.02.26 19:38
    break 구분이 없어서 무한 이미지서치를 하기 때문이죠;;;

    MsgBox,,, 못찾겠다꾀꼬리,1 아래에
    break 추가 해주시면 되겠습니다. 쿨럭;
  • profile
    낭군이 2015.02.26 19:46
    방금해보니까 break를 쓰면 되는데요

    제가원하는건 인터넷창이 뜨려면 시간이 조금 걸리니까
    만약 5초동안 기다린후에도 로그인이미지를 찾을수 없다고 한다면


    loop
    {
    ImageSearch,vX,vY,0,0,A_ScreenWidth,A_ScreenHeight,*50 %A_ScriptDir%\Image\mbc.png
    If ErrorLevel = 0
    ?{
    sleep, 2000 (찾자마자클릭하니까 아디비번이 뜨는시간오차가 생겨서 아디비번을 입력하라고 나오더군요, 그래서 2초여유)
    Mouseclick,left, %vX%,%VY%
    break
    ?}
    If ErrorLevel = 1
    ?{
    ?sleep, 5000 (여기에 넣으면 되나요???)?
    ?MsgBox,,, 못찾겠다꾀꼬리,1

    ?}
    ? ?sleep, 1000
    }
    return
  • 로뎀나무 2015.02.26 19:49
    loop ; 루프시작
    {
    ImageSearch,vX,vY,0,0,A_ScreenWidth,A_ScreenHeight,*50 %A_ScriptDir%\Image\mbc.png ; 이미지서치
    If ErrorLevel = 0 ; 서치 OK
    ?{
    sleep, 2000?
    Mouseclick,left, %vX%,%VY%
    break
    ?}
    If ErrorLevel = 1 ; 못찾음 여기를 이렇게 써도 되지만 그냥 else만 쓰셔도 되요;;; 이미지서칭에서 발견하면 errorlevel=0 아니면 1 둘중하나라서;;;
    ?{
    ?sleep, 5000 (여기에 넣으면 되나요???)?- 여기에 넣으면 5초후에 메세지 박스 출력
    ?MsgBox,,, 못찾겠다꾀꼬리,1

    ?}
    ? ?sleep, 1000 - 여기가 루프마지막이죠... 서치결과를 마무리짓는... 여길 5000으로 바꿔주시면 됩니다.
    }
    return
  • profile
    낭군이 2015.02.26 19:57
    간단한거 하나 하는데도 이렇게 어렵네요.ㅠㅠ

    위와 똑같은 구문을 실행했는데
    실행시키니 다음과 같이 됩니다.

    1.인터넷창이 뜹니다
    2. 로그인화면이 나옵니다
    3. 로그인이미지가 보이는데 못찾겠다 꾀꼬리 메시지박스 나옵니다
    4. 메시지박스가 꺼진후 5초정도 대기후에
    5. 로그인화면을 클릭후 빠져나오는거 같습니다.

    즉 로그인이미지가 보이는데
    못찾겠다 꾀꼬리라고 나오는데.;;
    어디가 잘못된걸까요?ㅠ

    일부러 공부하려고 로그인이미지를 클릭까지했는데 머리아프네요.ㅠㅠ
  • 로뎀나무 2015.02.26 20:02
    전체적인 스크립트를 봐야 알겠지만....
    대충 예상되자면 인터넷창 띄우는 스크립트와 이미지서치 스크립트 사이에 슬립이 없거나.. 혹은 그 값이 작거나
    인듯하고요.
    방법은 슬립을 로딩시간에 맞게 주시던지
    아니면 이미지서치를 이용해서 로그인 화면이 나올때까지 대기하고 있다가 클릭하는 방법이 있겠네요;;

    loop ; 루프시작
    {
    ImageSearch,vX,vY,0,0,A_ScreenWidth,A_ScreenHeight,*50 %A_ScriptDir%\Image\mbc.png ; 이미지서치
    If ErrorLevel = 0 ; 서치 OK
    {
    Mouseclick,left, %vX%,%VY%
    break
    }
    return

    루프문만 이렇게 바꿔주셔도 원하는 효과를 보실 수 있습니다.
    이미지 찾을때가지 루프문이 돌아가니까요.
    이 방법은 무조건 이미지서치가 성공한다는걸 전제조건으로 합니다. 쿨럭;
  • 로뎀나무 2015.02.26 20:10
    혹시나 해서 말씀드리는데요;
    그냥 로그인버튼만 클릭하시는거면....
    루프문을 그냥 안쓰셔도 되고, 그냥 run 과 imageseach 사이에 인터넷창 로딩시간만 어느정도 설정해주셔도 된답니다...쿨럭;

    buttonMBC:
    run, "C:\Program Files (x86)\Google\Chrome\Application\chrome.exe"\vodmall.imbc.com/player/onair.aspx
    sleep 10000 ; 대기시간 넉넉히 10초
    ImageSearch,vX,vY,0,0,A_ScreenWidth,A_ScreenHeight,*50 %A_ScriptDir%\Image\mbc로그인.png
    If ErrorLevel = 0
    Mouseclick,left, %vX%,%VY%
    return

    ^^ 라인수는 줄일수록 좋습니다. -_-;
  • profile
    낭군이 2015.02.26 20:11
    loop문을 쓰는이유는
    어찌 돌아가는지 배우고자 해서 그런거에요~

    매크로 만들때 어찌 사용되는지 하나하나 배우려고 해서용~ㅎㅎ
  • profile
    낭군이 2015.02.26 20:10
    SetWorkingDir %A_ScriptDir%
    Gui, Add, Button, x12 y9 w100 h30 , KBS
    Gui, Add, Button, x12 y49 w100 h30 , MBC
    Gui, Add, Button, x12 y89 w100 h30 , SBS
    ; Generated using SmartGUI Creator 4.0
    Gui, Show, x111 y586 h138 w125, New GUI Window
    Return

    GuiClose:
    ExitApp

    buttonKBS:
    run, "C:\Program Files (x86)\Google\Chrome\Application\chrome.exe"\k.kbs.co.kr/
    return

    buttonSBS:
    run, "C:\Program Files (x86)\Google\Chrome\Application\chrome.exe"\vod.sbs.co.kr/onair/onair_index.jsp?Channel=SBS
    return

    CoordMode Pixel ,Screen
    buttonMBC:
    run, "C:\Program Files (x86)\Google\Chrome\Application\chrome.exe"\vodmall.imbc.com/player/onair.aspx

    loop
    {
    ImageSearch,vX,vY,0,0,A_ScreenWidth,A_ScreenHeight,*50 %A_ScriptDir%\Image\mbc.png
    If ErrorLevel = 0
    {
    sleep, 2000
    Mouseclick,left, %vX%,%VY%
    break
    }
    If ErrorLevel = 1
    {
    sleep, 5000
    MsgBox,,, 못찾겠다꾀꼬리,1

    }
    sleep, 5000
    }
    return


    전체 스크립트입니다.ㅠㅠ
    못찾았을때도 한 10초뒤에 빠져나오게 하고 싶습니다.ㅠㅠ
  • 로뎀나무 2015.02.26 20:15
    흠..... 못찾았을때 행동되어지는 부분에 break와 sleep을 추가해주시면 되겠네요.

    설명은 충분히 해드린것 같구요. ^^
    응용은 스스로의 몫인것 같네요..
  • profile
    낭군이 2015.02.26 21:02

    네 좀더 연구해보겠습니다.ㅠㅠ

    친절한 답변 감사합니다 꾸벅

  • 늙은이 2015.03.06 05:04

    낭군이님

    ?

    문제가 2개때문에 발생합니다. 인터넷창 크기, 인터넷창 활성화 전에 핫키 실행 이걸 해결하시면됩니다.

    ?

  • profile
    낭군이 2015.03.06 10:23
    아..그렇군요..인터넷창크기가 변해서..그런걸생각못하고있었네요.ㅠㅠ감사합니다.

List of Articles
분류 제목 글쓴이 최근변경 추천
질문 중간에 명령이 안됩니다 8 GOLD 2015.03.02 0/0
질문 ImageSearch 시 이미지 파일이 많을 때 스크립트를 줄... 2 Vermee 2015.03.02 0/0
질문 loop 질문입니다. 2 올드휴고 2015.03.03 0/0
질문 이미지서치로 쓰는 그림파일들을 오토핫키exe안에 file... 3 GOLD 2015.03.02 0/0
질문 안녕하세요!! 오토핫키 막히는 점이 있어서 질문드립니다. 5 한지1 2015.03.02 0/0
질문 postmessage 마우스클릭에 대해 궁금해서 질문드려요... 5 투혼레몬 2015.03.02 0/0
질문 오토핫키L버젼에서 adb실행시 오류 문의^^ 6 핸콕 2015.03.02 0/0
질문 gui 기초부터 깔끔하게 정리되어있는데 주소있으신가요? 2 세나블텍 2015.03.02 0/0
질문 이미지서치 실패시 카운팅 가능한가요? 1 세나블텍 2015.03.01 0/0
질문 창이활성화상태가 아닐땐 이미지서치가 되지않습니다 4 GOLD 2015.03.02 0/0
질문 포스트메세지가 안먹힙니다 1 GOLD 2015.03.01 0/0
질문 서버인증에 관해 질문 드립니다 ㅜㅜ 10 한유 2015.03.02 0/0
질문 메크로 메뉴 버튼을 만들고 싶은데 가능할까요? 1 지니블렉션 2015.02.28 0/0
질문 핫키 vmware에서 처음만 실행하네요 지니블렉션 2015.02.27 0/0
질문 오토핫키 게시판 글올리기 7 늙은이 2015.03.05 0/0
질문 Edit를 활용한 로그 말인데요 4 Vermee 2015.03.01 0/0
질문 리스트박스 질문입니다~ 5 올드휴고 2015.03.01 0/0
질문 ddl 창 선택후 해상도 및 상위 고정법좀 알려주세요. 2 아잉뿌잉 2015.02.26 0/0
질문 DropDownList 질문이요. 2 아잉뿌잉 2015.02.26 0/0
질문 이미지 서치해서 그 이미지 클릭하는 방법좀 알고 싶습... 33 낭군이 2015.03.06 0/0
Board Pagination Prev 1 ... 180181182183184185186187188 ... 209 Next
/ 209

전체 최신 인기글

전체 주간 인기글