NGMsoftware

NGMsoftware
로그인 회원가입
  • 매뉴얼
  • NGM 6
  • 매뉴얼

    NGM 6

    본 사이트의 컨텐츠는 저작권법의 보호를 받으므로 무단 복사, 게재, 배포 등을 금합니다.

    에디터 도구 상자 - 스크립트 - 스크립트 다시 실행. (Toolbox, Script, Script Restart)

    페이지 정보

    본문

    안녕하세요. 엔지엠소프트웨어입니다. 엔지엠 매크로에는 매인 또는 [ 서브 스크립트 ]에서 다른 스크립트를 제어할 수 있는 여러가지 방법들이 존재합니다. 예를 어떤 조건 또는 상황에서 실행중인 스크립트를 [ 중지 ]하거나 [ 실행 ]할 수 있습니다. 물론, [ 일시 중지 ]도 가능합니다. 오늘 알아볼 내용은 스크립트를 다시 실행(중지, 실행)하는 방법입니다. 관계가 없는 스크립트라면 아래 그림과 같이 간단하게 처리가 가능합니다.

    I0HaySq.png

     

     

    현재 동작중인 스크립트에서 다른 스크립트를 독립적으로 실행하거나 중지할 수 있습니다. 하지만, 자기 자신을 중지하고 다시 실행하려면 문제가 발생합니다. 자기 자신을 중지하면 다음 실행 액션이 수행되지 않기 때문입니다. 너무나도 당영한 이야기라고 생각하실 수도 있지만, 생각보다 자주하는 실수이기도 합니다^^; 그래서, 중지와 실행을 동시에 수행할 수 있는 스크립트 다시 실행 액션을 이용해야 합니다. 아래와 같이 스크립트를 구성했습니다.

    OGCiDzy.png

     

     

    스크립트 다시 실행 액션의 속성은 기본값입니다. 이대로 스크립트를 실행(Ctrl+Alt+F8) 해보세요. 스크립트 다시 실행은 3초 후 다시 실행합니다. 그리고, 다시 실행은 1회만 동작합니다. 만약, 이 루틴을 무한으로 반복시키고 싶다면 반복시킬 횟수-1을 입력하세요.

    CAYrc2i.gif

     

     

    예약 실행 옵션을 False로 변경하고 실행하면 반복 횟수가 더이상 동작하지 않게 됩니다. 예약 실행은 매크로 엔진이 다음에 실행될 스크립트를 등록합니다. 그리고, 반복된 횟수를 기록합니다. 하지만, 예약 실행을 사용하지 않으면 스크립트를 중지하고 다시 실행하기 매크로 엔진이 초기화됩니다. 초기화 된다는 의미는 메모리에서 모든 정보를 삭제한다는 뜻입니다.

    rYyOvlW.gif

     

     

    예약 실행은 스크립트가 완료된 후 다시 실행 해줍니다. 아래 동영상처럼 스크립트 다시 실행 액션을 중간으로 이동한 후 스크립트를 실행 해보세요. 현재 스크립트의 마지막 액션까지 실행한 후 다시 처음부터 실행되는걸 확인할 수 있습니다.

    pujJBPx.gif

     

     

    이번에는 예약 실행을 False로 변경하고 다시 실행 해보세요. 현재 실행중인 스크립트가 완료되지 않더라도 바로 재실행되는걸 알 수 있습니다.

    rymaGZM.gif

     

     

    만약, 서브 스크립트에서 어떤 조건에 의해 매인 스크립트를 처음부터 다시 실행하고 싶으면 어떻게 해야 할까요? 이 예제를 테스트하기 위해 아래와 같은 스크립트를 만들었습니다. 스크립트가 조금 복잡해 보이지만, 전부다 동기적으로 묶여있고 마지막 서브 스크립트에서 스크립트를 재시작하도록 구성했습니다.

    BteIzF2.gif

     

     

    옵션은 매인 스크립트True로, 예약 실행False로 설정 했습니다. 우선, 이 스크립트의 구조는 매인 > 서브1 > 서브2 > 서브3 > 서브4 > 서브5가 무한으로 순환하는 구조입니다. 서브5에서 매인 스크립트를 재시작합니다. 아래 동영상을 보면 뭔가 동작이 이상하다고 느낄 수 있습니다.

    VyK9vi6.gif

     

     

    의도한대로 동작하려면 매인 > 서브1~5까지 실행한 후 매인이 중지되고 실행되어야 합니다. 하지만, 로그를 보면 서브5가 끝나고 매인의 다음 액션으로 넘어갑니다. 그리고 잠시 후 스크립트가 모두 종료되고 실행됩니다. 이렇게 동작하는 이유는 스크립트 다시 실행 옵션의 지연 시간 때문입니다. 재실행까지 3초를 기다리기 때문에 그동안 매인 스크립트는 정상 동작하게됩니다.

    SEmBBsL.png

     

     

    스크립트 다시 실행 액션을 만났을 때 즉시 다시 실행하려면 지연 값을 0으로 설정하면 됩니다.

    mZYYv7a.gif

     

     

    서브 스크립트 5는 아래와 같이 구성되어 있습니다. 그룹(1)과 [ 액션 이동 ]으로 무한 반복되는 구조입니다.

    wL2j1QH.png

     

     

    만약, 스크립트 다시 실행의 옵션에서 예약 실행을 True로 변경하고 실행하면 어떻게 될까요?

    D6mcH1K.png

     

     

    이렇게하면 스크립트 재실행이 동작하지 않게됩니다. 예약 실행은 스크립트가 완료될 때까지 예약을 걸어놓고 스크립트가 완료되면 재실행을 수행하기 때문입니다. 그래서, 이 옵션을 사용할 때는 현재 실행중인 스크립트가 무한 반복되는 루틴이 아닌지 잘 확인해야 합니다. 매인 스크립트를 다시 실행해보면 아래 동영상처럼 서브 스크립트 5에서 무한 반복되면서 재실행이 되지 않습니다.

    CwF7a9o.gif

     

     

    스크립트 다시 실행 옵션을 잘 활용하면 매인 또는 서브 스크립트의 특정 루틴에서 초기화하고 스크립트를 처음부터 다시 실행할 수 있습니다. 매인과 서브 또는 혼합된 환경에서 제어해야 하는 옵션이다보니 사용 방법이 복잡하게 느껴질수도 있는데요. 이는 충분히 동작에 대해 테스트와 검증을 해보시고, 적절하게 조합해서 사용하시는걸 추천드립니다.

     

    개발자에게 후원하기

    MGtdv7r.png

     

    추천, 구독, 홍보 꼭~ 부탁드립니다.

    여러분의 후원이 빠른 귀농을 가능하게 해줍니다~ 답답한 도시를 벗어나 귀농하고 싶은 개발자~

    감사합니다~

    • 네이버 공유하기
    • 페이스북 공유하기
    • 트위터 공유하기
    • 카카오스토리 공유하기
    추천0 비추천0

    댓글목록

    profile_image

    Skitzo님의 댓글

    no_profile Skitzo 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 작성일 Date

    필요한 내용인것 같습니다~