오토핫키 :: 6강 Loop도 엣지있게

오토핫키 :: 6강 Loop도 엣지있게

카테고리 : 오토핫키/오토핫키 강좌

안녕하세요. 연애가중매입니다.
벌써 오토핫키에 대한 강좌가 6강이나 진행되고 있습니다.
아직 필요한 부분에 따른 문의나 다른 질문들이 없으셔서 ..
워낙 강의를 잘하는 것이 문제인가 하는 실없는 생각도 해봅니다.
음 그렇다면?
정말 잘하고 있는거겠죠~ 하하하하하하

음 .. 혹시몰라 블로그에 게시판을 달아볼 생각입니다.
편하게  잡담 혹은 오토핫키에 대한 이야기들을 끄적일 수 있을까 하여
생각해보았습니다.

이제 잡설은 여기까지 놔두고~ 오토핫키 6강을 진행해보도록 할까요?

오토핫키 강좌


오토핫키 6강의 내용은 Loop에 관한 이야기입니다.

지금까지 Loop에 대해 간략하게 설명을 해놓고선 왜~ 다시 Loop를 6강에서 반복하느냐?
이러한 점이 궁금한 분이 있으시다면 분명 제 지난 강의들을 다 잘 따라오신게 분명합니다.
혹여 못들으신 분들을 위해서 지난강의(링크)를 남깁니다.

자자.. 왜 반복하느냐에 대한 부분은 바로 Loop는 실질적으로 스크립트에서 거의 모두 사용하기 때문이죠.
반복문구는 동익작업을 계속할 수 있도록 도와주는 매우 매력적인 명령어로 너무 많이 사용하여
재 조명해보고자 합니다.

Loop란? 명령을 반복시키기 위해 사용되는 명령어


오토핫키 강좌 :: 1. 일반적 Loop의 사용
Loop, 사용횟수
{
사용하고자 하는 명령어


이러한 형태로 일반적인 Loop문이 사용되어집니다. 특히 사용횟수에서 일반적인 숫자나 변수가 사용되지만 적지 않으면 무한하게 Loop문을 실행하죠. 


오토핫키 강좌 :: 2. Loop에서 사용되어지는 변수
Loop에서 사용되어지는 변수는 지난 강의에서도 언급하였던 A_Index입니다.
바로 Loop의 반복 횟수를 저장하는 변수이죠.
따라서 이 변수를 활용하면 다양한 작업이 가능하기도 합니다.
Loop
{
다양한 작업의 명령어
if A_Index > 5
명령어 ; 이를 통해서 루프를 5번 돌고난 후 6번째부터 아래 명령어로 시행하게 되겠죠. 물론 명령어가 여러줄일 시 가로로 묶어주어야 합니다. 


오토핫키 강좌 :: 3. Loop는 Break로 탈출이 가능하다.
Loop
{
msgbox, %A_Index%
if A_Index = 5
break
}

이런식으로 if라는 조건문을 통해서 특정한 환경에 break가 시행되도록 한다면 Loop가 그 조건에 맞게끔 탈출하게 됩니다. 


오토핫키 강좌 :: 4. Loop에서 Continue의 역할은
loop, 5
{
send, x
if A_index > 4
continue
msgbox, %A_index%회가 진행되었습니다.
}

위의 스크립트에서 4회이상 반복시 continue라는 명령어를 시행하는 이는 continue아래 있는 명령어를 시행하지 않고 다시 Loop의 처음으로 돌아가서 계속 진행하는 것이죠. 단, 반복횟수는 초기화되지 않습니다. 


오토핫키 강좌 :: 5. 그 외
Loop, RootKey [, Key, IncludeSubkeys?, Recurse?]  레지스트리의 원하는 값을 찾으며 반복
Loop, FilePattern [, IncludeFolders?, Recurse?] 폴더내에서 원하는 파일패턴을 하나씩 찾으며 반복
Loop, Parse, InputVar [, Delimiters, OmitChars] 특정기준에 따라 문자열 전체를 구분하여 하나씩 찾아주며 반복
Loop, Read, InputFile [, OutputFile] 문자열 전체를 한줄씩 구분하여 찾아주며 반복 


위와 같은 옵션의 경우는 크게 잘 사용되지는 않으나 알아두면 꽤나 유용할 수 있습니다.
이에 대해 필요한 부분은 따로 관련스크립트가 나올때, 추가적으로 설명드리겠습니다.

이상으로 오늘의 강좌를 마치고자 합니다. 감사합니다.


저작자 표시 비영리 변경 금지
신고

댓글을 달아 주세요

  1. Favicon of http://blog.naver.com/su8113 BlogIcon 만기의블로그 2012.02.15 10:53 신고  수정/삭제  댓글쓰기

    그럼 컨티뉴 뒤에적은 명령어는 다 무효가 되나요?

    • Favicon of http://tvdusdo.tistory.com BlogIcon 연애가중매 2012.02.15 11:11 신고  수정/삭제

      네 맞습니다.
      조건식으로 continue를 적으시면
      조건형성시 그 루프안에 있는 뒷명령어는 무효화되고
      다시 루프를 반복합니다.
      단, 루프반복의 카운터는 계속올라가죠.
      따라서
      조건문이 A_Index = 5일때 continue
      라면 loop안에서 5번째 반복이 될때
      아래 명령어 무시
      A_Index > 5 라면
      5번째 반복시부터 continue아래 명령어 무시가 되겠어요.

    • Favicon of http://blog.naver.com/su8113 BlogIcon 만기의블로그 2012.02.16 15:03 신고  수정/삭제

      아 그렇군요 ㅎㅎ 오늘편은 안나오낭

    • Favicon of http://tvdusdo.tistory.com BlogIcon 연애가중매 2012.02.16 22:10 신고  수정/삭제

      오늘편은 일이 있어서 작성하지 못했습니다.
      내일 올리도록 하겠습니다.
      매일 같이 봐주셔서 너무나 감사합니다.

  2. BlogIcon 강종완 2012.02.28 03:29 신고  수정/삭제  댓글쓰기

    안녕하세요...연애가중매님 오토핫키 강좌보고 열심히 공부중입니다..도중에 막혔어요.ㅠㅠ도와주세요
    end::exitapp
    Insert::reload
    Home::


    loop
    {
    imagesearch,vX,vY,1,1,A_ScreenWidth,A_ScreenHeight, 333.jpg

    if errorlevel=0
    {
    soundplay, 11.wav
    msgbox,찾았다
    sleep,1000
    break
    }
    }
    return

  3. BlogIcon 강종완 2012.02.28 03:33 신고  수정/삭제  댓글쓰기

    이게 무슨 스크랩이냐믄...333이라는 jpg 그림이 뜨면 11wav 알람소리와 찾았다가 동시에 뜨게끔햇씁니다..
    근데 스크랩 파일을 실행하면 작업표시줄 오른쪽엔 H라고 작동합니다.
    여기서 스크랩파일이 있는 폴더를닫으면 작동이 안되네요..화면에 333이라는 그림이 떠도 찾았다와 소리가 나오질 않습니다...스크랩파일을 최소화 하거나 닫으면 작동이 안되고 스크랩파일폴더을 인터넷창에 올리면 그제서야 찾았다와 소리가 나옵니다..이건 왜그런건지요.

  4. BlogIcon 강종완 2012.02.28 03:35 신고  수정/삭제  댓글쓰기

    분명 작업표시줄 오른쪽엔 오토핫키가 작동중에 있는데 말이죠...Home키를 누르면 그때부터 333을 찾을때까지 작동이 되는게 아닌지요? 그리고 333의 그림이 없는데도 스크랩트폴더를 화면에 올리고 home키를 누르면 찾았다와 소리가 나옵니다..333의 그림이 없는데도 말이죠.ㅠㅠㅠ
    스크랩트 좀 손봐주세요...ㅠㅠ

    • Favicon of http://tvdusdo.tistory.com BlogIcon 연애가중매 2012.02.28 10:40 신고  수정/삭제

      먼저 스크립트 창에 333.jpg의 이미지가 있을 것이고
      그 이미지를 인식하는 것 아닐까요?
      화면에 333이라는 그림이 떠도 찾았단 소리가 나오지 않는다면 이미지 파일 앞에 *0~255 333.jpg를 줘서 이미지를 서치할 수 있는 범위를 더 늘려주세요.

      제생각에는 인터넷 창에있는 333을 인식하지 못하는 듯합니다.

  5. 말보로맨 2012.02.29 00:15 신고  수정/삭제  댓글쓰기

    정말 좋은 강의에 경의를 표합니다.. ^^
    정말 필요한 기능이 있는데.. 가능하지 모르겠어요~
    염치 불구하고 하나만 여쭐께요~

    포토샾 작업시 브러시사이즈를 조절하는 스크립트를 만들고 싶은데요~
    마우스에 모튼 키에는 다른 값들이 할당되어 있어서.. 꼭 좌우스크롤 버튼에
    [, ] 를 넣고 싶은데.. 도저히 ㅠㅠ


    결론은 로지텍마우스 휠의 상하는 줌이구요~ (포토샾어세 지원) 좌우는 기냥~ 스크롤인데..
    여기에 좌측으로 밀면 키보드의 [ , 우측으로 밀면 키보드의 ] , 를 넣고 싶어서요~

    꼭 좀 부탁드릴께요...
    감사합니다.

  6. 신동근 2012.03.22 04:23 신고  수정/삭제  댓글쓰기

    Loop
    {
    send,{up down}s
    sleep,1000
    }
    return
    1. 위 스크립트를 입력하였을 시 어떠한 반응을 나타내는지요?

    그리고 위의 스크립트는

    키보드 위 방향키를 계속하여 누르고 있는 상태에서
    s키는 반복적으로 계속 누르고 있게 할려는 스크립라고
    만들어본건데 .. 맞나요?

    2. 또 .. {up down} 명령어를 넣고난 후
    또다른 방향키 명령어를 넣기위해서는 {up up} 명령어를
    넣어주어야 하나요??


    3 . 방향키 up 을 2초간 누르고 있다가 s를 누르는
    반복적인 스크립트를 짤려고 하는데 잘 되지 않습니다
    ☞이는 위에 1번 질문을 해결하기 위함입니다

    4. 제가 만들고 싶은 정확한 소스는 다음과 같습니다

    마우스로는 임의의 좌표 100, 100을 10초 간격으로 계속하여
    누르면서 이와 동시에 키보드는 방향키 up 을 2초간 누릅니다
    이어서 키보드 s 를 10회 눌러준 후 d를 2번 눌러주게 하는
    소스입니다

    정리하자면 마우스의 임의 좌표클릭은 계속하고있고
    이에 키보드 up2초, 이어서 s 10번, d 2q번

    이를 반복하게 해주는 스크립트를 짜고 싶습니다



    강좌를 살펴보고 살펴보며 만들어봣지만 번번히 실패하여
    이렇게 질문글 남겨드립니다

    거듭하여 확인할테지만 shadow2241@naver.com
    으로도 메일 보내주시면 감사하겠습니다

    좋은 강좌글 보고 매일같이 오토핫키를 공부하는 한 시람이
    되었습니다. 계속하여 좋은 강좌글 부탁드리고 언제나 좋은정보
    감사드립니다 ^^*

  7. 2012.03.26 18:21 신고  수정/삭제  댓글쓰기

    시간이 참 빨리가네요 ㅎㅎㅎ

    학교 C언어 강의는 졸린데 ㅋㅋㅋ

    요건 재밌어서 시간가는줄 모르고 하네요 ㅎ

    감사합니다^^

  8. 2012.08.23 07:57  수정/삭제  댓글쓰기

    비밀댓글입니다

  9. 2013.01.08 21:40 신고  수정/삭제  댓글쓰기

    오토핫키에서 반복명령어를 특정문자로 지정할수있나요?

    WinWait, 글쓰기 - Windows Internet Explorer,
    IfWinNotActive, 글쓰기 - Windows Internet Explorer, , WinActivate, 글쓰기 - Windows Internet Explorer,
    WinWaitActive, 글쓰기 - Windows Internet Explorer,
    MouseClick, left, 674, 177
    Sleep, 100
    Send, {CTRLDOWN}v{CTRLUP}
    MouseClick, left, 1351, 685
    Sleep, 100
    Send, {CTRLDOWN}v{CTRLUP}
    MouseClick, left, 1289, 683
    Sleep, 100
    Send, {CTRLDOWN}a{CTRLUP}
    MouseClick, left, 788, 248
    Sleep, 100
    MouseClick, left, 1048, 886
    Sleep, 100
    MouseClick, left, 1918, 815
    Sleep, 100
    MouseClick, left, 1031, 908
    Sleep, 1000
    MouseClick, left, 357, 47
    Sleep, 100
    Send, {ENTER}
    Sleep, 100




    안녕하세요


    위내용을 임의의 문자"A"로 지정하고

    실행할때마다




    Run, A


    이런 형태로 만들수있나요??

    그리고 코드옆에다 메모하려면 어떻게 해야하나요? 나중에 수정하려고 보면 처음부터 다시

    머리속에 그려봐야하더라구요 (오류안나게 메모하는방법좀알려주세요)

    • Favicon of http://tvdusdo.tistory.com BlogIcon 연애가중매 2013.01.08 23:19 신고  수정/삭제

      스크립트를 변수화 하는 방법에대해서는 모르겠지만 다른 방법은 있습니다.
      스크립트를 A.ahk로 저장하셔서 다른스크립트에서 불러와서 사용하는 방법이 있습니다.

      #include A.ahk
      같은 폴더에 있을 경우 입니다.
      그리고 메모는 ; 를 사용하여 가능합니다.

      send,{enter} ; 엔터를 치는 경우
      위와 같은 경우로 스크립트에 메모를 남기실 수 있습니다.

      좋은하루 되세요 ^^

  10. 2013.02.20 12:56  수정/삭제  댓글쓰기

    비밀댓글입니다

  11. 학생 2013.04.16 19:28 신고  수정/삭제  댓글쓰기

    특정시간마다 다른 loop를 반복하게하려면 어떻게 하면 좋을까요?

    • 학생 2013.04.16 19:29 신고  수정/삭제

      한 6초간은 A loop를
      다른 6초간은 B loop를
      이런식으로 하고싶은데.. 초보로선 감이 안잡히네요

    • Favicon of http://tvdusdo.tistory.com BlogIcon 연애가중매 2013.04.30 00:57 신고  수정/삭제

      상위루프문만 주면 되지 않을까요? Settimer를 쓰지 않더라도
      루프문안에 A와 B로 서브루틴을 주는데
      해당 루프문에 break값을 현제 시간 기준으로 주는겁니다. 루프에 들어갔을때와 루프에 빠질때에 값을 6초로 준다면 해결될 수도 있는부분이며
      아니면 Settimer를 사용하신다면 손쉽게 가능합니다.

      요즘 블로그 운영을 잘 안하고있습니다.
      오토핫키 관련해서는 ohhot.net에서 질답을 하고 있어요~
      오핫넷에 한번 방문해보세요~

  12. 저좀도와주세요ㅠ 2013.05.20 05:27 신고  수정/삭제  댓글쓰기

    f11::
    settimer,SQ,2000
    settimer,SW,235000
    loop
    {
    loop,3000
    mouseclick,left,150,300

    loop,1000
    mouseclick,left,650,370

    loop,1500
    mouseclick,left,100,300
    break
    }

    SQ:
    Critical
    mouseclick,right
    sleep,300
    return

    SW:
    Critical
    send,{f4}
    sleep,10
    mouseclick,left,550,390
    sleep,1000
    mouseclick,left,550,390
    sleep,1000
    mouseclick,left,550,390
    sleep,1000
    mouseclick,left,550,390
    sleep,300
    return

    도저히 모르겠네요

    마우스 레프트클릭 150,350/650,370/,100,300을 각각 3천 1천 1500식 클릭
    [도중에 마우스right는 2초마다 계속클릭]

    위에 100,300을 1500클릭한후 멈춤 (right은 안멈춰도 상관없음)

    멈추고나면 f4누르고 마우스550,390방향 각각 1초마다 4번 클릭

    한후 다시 맨위에 마우스 3천 1천 1500 반복 클릭을 해야하는데 방법을 모르겠어요

    그런데 제가 초보라.. 저 명령어들좀 간단하게 줄일수없나요?


Powerd by TalkBlog Tistory, designed by 한밤의 TV연애

티스토리 툴바