매크로

조회 수 8245 추천 2 댓글 15

보통 오토핫키에서 2가지 이상의 명령을 동시에 처리하기 위해서 SetTimer를 사용합니다 예를 들면...


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

F1::

SetTimer, sendafunc, 10

SetTimer, sendbfunc, 10

SetTimer, sendcfunc, 10


Esc::

ExitApp

return


sendafunc:

Send, {a}

return


sendbfunc:

Send, {b}

return


sendcfunc:

Send, {c}

return

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


이렇게 코드를 짜고 메모장을 킨 다음 F1 키를 누르면 10ms 간격으로 a,b,c가 거의 동시에 입력되면서


메모장에 abcabcabcabc 이런식으로 계속 출력이 되게 됩니다


하지만 타이머가 걸려있는 각각의 라벨에 Loop가 들어있으면 어떻게 될까요? 예를들어...


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


F1::

SetTimer, sendafunc, 100

SetTimer, sendbfunc, 100

SetTimer, sendcfunc, 100


Esc::

ExitApp

return


sendafunc:

Loop, 10

{

Send, {a}

Sleep, 10

}

SetTimer, sendafunc, off

return


sendbfunc:

Loop, 10

{

Send, {b}

Sleep, 10

}

SetTimer, sendbfunc, off

return


sendcfunc:

Loop, 10

{

Send, {c}

Sleep, 10

}

SetTimer, sendcfunc, off

return


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


이런식으로 코드를 짜고 메모장을 킨 다음 F1키를 누르면 앞에서 돌아가던 루프문에 다음 루프문이 끼어들게 되면서 


다음과 같이 출력이 됩니다


abccccccccccbbbbbbbbbaaaaaaaaa


결국 뒤쪽 루프문부터 순서대로 실행되는것과 비슷한 결과를 얻게되죠


그렇다면 각 루프문이 동시에 실행되도록 하려면 어떻게해야할까요


방법은 각 루프문을 별도의 스크립트로 만든다음 이를 다른 스크립트에서 동시에 실행시켜주면 됩니다


예를들면 우선 test.ahk / a.ahk / b.ahk / c.ahk 이렇게 4개의 스크립트를 따로 만든다음 한 폴더에 두고


각각의 스크립트엔 다음과 같이 코드를 입력해줍니다


test.ahk---------------------------------------------------------------

F1::

Run, a.ahk

Run, b.ahk

Run, c.ahk

return

test.ahk---------------------------------------------------------------


a.ahk-----------------------------------------------------------------

Loop, 10

{

Send, {a}

Sleep, 10

}

return

a.ahk-----------------------------------------------------------------


b.ahk-----------------------------------------------------------------

Loop, 10

{

Send, {b}

Sleep, 10

}

return

b.ahk-----------------------------------------------------------------


c.ahk-----------------------------------------------------------------

Loop, 10

{

Send, {c}

Sleep, 10

}

return

c.ahk-----------------------------------------------------------------


그다음 test.ahk를 실행시키고 F1 키를 눌러보면 각 루프문이 거의 동시에 돌아가면서 


abcbacbcabcacababcabccabcbabac


이런식의 최종결과를 얻을 수 있게 됩니다



  • 노터스 2016.09.18 01:30

    AHK_H를 이용하면, Multi-thread 작업이 가능 하다고 하더군요.

    AHK_H DLL로 스크립트 작성한뒤, 각각 한 스크립트 안에서 불러오고, 프로세서/코어에서 개별 작업이 가능 하다고.... 한걸 어디서 본거 같습니다 ㅎ

    https://autohotkey.com/board/topic/75865-ahkdll-multi-threading-basic-examples/

    https://hotkeyit.github.io/v2/docs/AutoHotkeyDll.htm

  • my0312 2016.09.18 03:37
    이런게 있는줄은 몰랐네요 좋은 정보 감사합니당 ㅎㅎ
  • 하연데디 2016.10.27 10:49
    이거 도전해보고 있습니다.ㅎㅎ 멀티 쓰레드로 역활 분할해 놓으면 좋을 것 같아서요 ...
  • 선녀는후끈해 2016.10.20 15:39

    또한 Critical, On, Off를 이용하여, 서로의 함수에 방해받지 않게 추가도 가능합니다.

  • 하연데디 2016.10.25 15:47

    아 정말 필요하던 부분이었는데 감사합니다!!!

  • profile
    크농 2016.10.25 20:21

    settimer도 병렬은 아니였군요! ㅎㅎ

    좋은정도 알아갑니다 :)

  • 스웨이스 2016.11.02 11:37

    작성자님 이렇게 병렬로 쓸려고 했는데 실행하면 예 아니오 라는 창이 반복해서 뜨네요. 왜이런건가요..?

  • my0312 2016.11.03 15:44
    아 오토핫키 여러개 실행시키려면 singleinstance 라는 옵션을 비활성화 시켜야하는데 깜빡했네요 오토핫키 헬프에 가셔서 single 키워드로 검색하면 자세히 나올거에요
  • 스웨이스 2016.11.03 16:45
    감사합니다^^
  • 스웨이스 2016.11.05 18:06
    my0312님 run으로 실행시킨 스크립트를 원래 스크립트 종료시킬때 같이 종료하는방법이 있나요??
    다 해결했는데 run스크립트를 종료할려면 따로 키를 지정해야되던데 지정해도 안꺼질때도 있더라구요.
    그리고 키를 지정하면 예/아니오 창이 뜰때도 있구요. 원래 스크립트 종료할때 같이 종료하는 방법은 없을까요??ㅜ
  • my0312 2016.11.09 11:05
    음... 그 부분은 잘모르겠네요 원래 스크립트에서 다른 스크립트를 실행시켰을 때
    다른 스크립트는 return을 만나면 그때그때 loop가 끝나는대로 알아서 종료가 될텐데 이상하네요..
  • 스웨이스 2016.11.09 18:49

    그렇군요. 감사합니다 ㅎㅎ

  • 오토웹 2016.11.19 09:55

    컨트롤타워 스크립트(test.ahk) 내 다음 명령어,라벨 추가

    onexit, exit (스크립트 상단에 추가)

    exit:
    sendMessage, 0x112, 0xF060,,, a.ahk
    sendMessage, 0x112, 0xF060,,, b.ahk
    sendMessage, 0x112, 0xF060,,, c.ahk
    exitapp
    return

  • 좌통닭우치킨 2017.05.07 18:43

    좋은 정보 감사합니다

  • 바남 2018.10.21 00:07

    감사합니다 하나의 스크립트로 셋타이머를 하다보니 겹쳐져서 꼬이는부분이 많았는데 이 방법으로도 해봐야겠네요

    혹시 critical 을 추가하게된다면 

    a.ahk ,b.ahk, c.ahk에 추가해야하나요? 아니면

    test.ahk 에 추가를 해야하나요?


List of Articles
분류 제목 글쓴이 최근변경 추천
질문 hid스틱 오토핫키 질문 저런곤란 2023.04.26 0/0
질문 텔레그램 이미지 보내는 방법아시는분.... 빨리올리져 2023.04.26 0/0
질문 오토핫키 이미지서치 질문입니다 3 쿤달 2023.04.24 0/0
공유 디컴방지 컴파일러 정식버전 v2.00 digim0 2023.04.18 0/0
자유 게임추천좀해주세요~! 감사합니당ㅋㅋ 2023.04.13 0/0
자유 반갑습니다 오늘도 좋은하루되세요 2 통통배다잉 2023.04.12 0/0
질문 이미지서치후 해당좌표까지이동할때쓰는 함수뭐가있을... 2 감사합니당ㅋㅋ 2023.04.09 0/0
자유 오토핫키 로스트시티 작동잘되나요 ? 최진 2023.04.05 0/0
질문 오토핫키 v2 이미지서치 도움 좀 주실분!! 2 비비아랑 2023.11.05 0/0
질문 오토핫키 v2 버전 비활성 이미지서치 1 레몬유령 2023.04.01 0/0
공유 AHK로 텍스트 타이핑 vim처럼 어디서든 사용하거나 마... 엘런튜링 2023.03.30 0/0
질문 랜덤 중복 우회 방법 1 반디친구 2023.03.27 0/0
질문 PC 바람의나라 오토핫키 우회법 문의 3 레인슈터 2023.06.20 0/0
질문 오토핫키v2 정식버전이 된거 같습니다. 톨톨이 2023.03.25 0/0
공유 디컴방지 컴파일러 정식버전 v1.01 digim0 2023.03.31 0/0
질문 이미지 서치 중 변수 %A_index% 관련 문의 1 후룰루롤로 2023.03.22 0/0
질문 이미지 서치 7 후룰루롤로 2023.03.23 0/0
질문 비활성 이미지서치 1 후룰루롤로 2023.03.22 0/0
공유 와이로 컴파일러 디컴파일 도구 (3/16 수정) 6 wejkqv 2023.03.27 0/0
공유 디컴방지 컴파일러 v3 digim0 2023.03.14 0/0
Board Pagination Prev 1 2345678910 ... 209 Next
/ 209

전체 최신 인기글

전체 주간 인기글