NGMsoftware

NGMsoftware
로그인 회원가입
  • 매뉴얼
  • 팁 앤 테크
  • 매뉴얼

    팁과 테크니컬 노하우를 확인하세요.

    팁 앤 테크

    팁과 테크니컬 노하우를 확인하세요.

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

    에디터 매크로(스크립트)를 하루에 한번만 실행하도록 구성하는 방법.

    페이지 정보

    본문

    안녕하세요. 엔지엠소프트웨어입니다. 매크로에 스크립트가 1부터 5까지 있다고 생각 해보세요^^; 여기서 1번 스크립트만 하루에 한번만 실행해야 하는 경우 어떻게해야 할까요? 처음 매크로를 접하게 되면 난감할거라 생각합니다. 전체 스크립트에서 1번만 하루에 한번 실행하고, 나머지는 계속 실행되어야 하니까요. 자~ 이런 경우에는 1번 스크립트가 오늘 실행되었는지 체크할 수 있는 무언가가 필요합니다. 이 예제에서는 바탕화면에 텍스트 문서를 하나 만들고, 여기에 날짜를 입력해서 오늘과 같은지 비교하는 방법을 사용할겁니다. 엔지엠 매크로를 실행하고 우측 외부 API의 파일 > [ 텍스트 파일 ]을 하나 추가하세요.

    dELHNyV.png

     

     

    텍스트 파일 액션은 텍스트 파일에 내용을 쓰거나 읽을 때 사용하는 액션입니다. 오늘 날짜를 텍스트로 저장해야 하기 때문에 날짜 체크 액션을 위에 추가하세요. 날짜 체크 액션의 현재 시간 속성을 True로 설정하면 실행될때마다 날짜가 자동으로 갱신됩니다.

    e4qNT5l.png

     

     

    현재 날짜를 저장할 변수를 하나 추가해줍니다.

    QgmQCc7.gif

     

     

    현재 날짜를 변수에 저장하세요.

    aGOhMS3.gif

     

     

    오늘 날짜 값을 텍스트로 저장해줍니다. 저는 바탕화면에 test.txt 파일로 저장하도록 했습니다.

    UQAsQRP.gif

     

     

    텍스트 파일 액션의 저장 속성을 True로 변경한 후 실행하세요.

    WxL5pPh.gif

     

     

    바탕화면에 test.txt 파일이 생성됩니다. 이 파일을 열어보면 오늘 날짜인 20 값이 저장되어 있습니다.

    EvvxTFk.png

     

     

    이렇게 오늘 날짜를 파일로 저장하는 방법을 알아봤는데요. 이제는 하루에 한번 매크로가 실행되도록 해보겠습니다. 우선, 시나리오는 이렇습니다. 바탕화면의 test.txt 파일의 내용을 읽어와서 오늘 날짜와 같으면 매크로를 실행하고, 날짜를 내일 날짜로 저장합니다. 만약, 오늘 날짜와 같지 않다면 오늘 이 스크립트는 실행된걸로 간주합니다. 왜냐면 실행된 후 날짜를 내일로 바꿀거니까요. 아래와 같이 텍스트 파일 액션의 저장 속성을 False로 변경하세요. 그리고, 변수도 삭제 해줍니다.

    iLM979b.gif

     

     

    텍스트 파일에서 읽어온 값을 변수에 저장해주세요.

    Nm2qLvu.gif

     

     

    텍스트 파일에서 읽은 현재 날짜와 날짜 체크에서 저장할 날짜를 비교하기 위해 변수를 하나 더 추가 해줍니다. 그리고, 날짜 체크의 변수 이름을 변경 해주세요.

    Jx2VElX.gif

     

     

    마지막으로 [ 숫자 체크 ] 액션을 추가하고, 변수로부터 날짜들을 가져옵니다.

    Fs9Doko.gif

     

     

    실행 해보면 텍스트 파일에 저장된 날짜와 현재 날짜가 같으므로 무조건 True입니다. 그렇죠? 위에서 설명한 시나리오대로 동작하고 있습니다. 날짜가 같기 때문에 오늘은 이 스크립트가 실행된적이 없다는 뜻입니다. 그러니 아래로 스크립트 내용이 실행되고, 마지막에 날짜를 하나 더해줘야 합니다.

    FamvYGZ.gif

     

     

    날짜 시간 계산 액션을 이용해서 날짜를 계산해야 합니다. 단순히 숫자 증감으로 처리할수도 있지만, 시간, 날짜와 같은 경우에는 28일, 29일, 30일, 31일과 같이 맥시멈이 정해져 있고, 이 후 1일로 초기화가 되어야 하기 때문입니다. 시간, 분, 초도 동일합니다. 60 이후에 1로 초기화가 되어야 합니다.

    ※ 스크린샷 및 동영상에는 시간 사칙 연산으로 되어 있으나 실제 첨부되어 있는 파일은 날짜 시간 계산 액션으로 되어 있습니다.

    knx0i6d.gif

     

     

    실행 해보면, 결과 값이 21로 표시됩니다. 오늘이 20일이니 하루가 더해진거죠^^; 여기까지 이해가 되시죠?

    sRPZ7TT.gif

     

     

    결과 값을 변수에 저장 해줍니다.

    IaeLTH9.gif

     

     

    그리고, 파일을 다시 갱신하세요.

    DN03fm8.gif

     

     

    이제 마지막이군요. 그룹을 하나 추가한 후 아이디를 "종료"로 설정하세요. 그리고, 위에 숫자 체크 액션에서 다름에 종료로 설정해줍니다.

    josvPQO.gif

     

     

    전체적인 시나리오는 현재 시간과 텍스트 파일에 저장된 시간을 비교해서 같으면 스크립트를 실행하고, 날짜를 하루 더해서 갱신합니다. 그러면, 오늘 또다시 실행하면 텍스트 문서의 날짜와 현재 날짜가 다르므로 숫자 체크에서 종료로 액션이 이동하게 됩니다. 내일이 되면 텍스트 문서 날짜와 같아지기 때문에 스크립트가 실행되고 또다시 날짜를 갱신해서 더이상 실행되지 않도록 해줍니다.

    CZVYwpr.gif

     

     

    너무 빨라서 정상적으로 동작했는지 잘 확인이 안되는군요. 지연을 줘서 확실하게 체크해보도록 하겠습니다. test.txt 문서를 열어서 21로 갱신된 내용을 20으로 수정하고 저장하세요. 그리고, 그룹 액션들에 실행 전 지연 값을 500정도 주었습니다. 다시 실행해보세요.

    PoDj0Cc.gif

     

     

    이번에는 결과를 좀 더 정확하게 확인할 수 있었습니다. 처음 실행할 때 날짜가 같으므로 그룹 액션들이 0.5초씩 지연을 가지고 실행되었습니다. 두번째 실행할 때는 마지막 종료 액션으로 이동합니다. 실제 매크로 또는 프로그래머들도 이런 종류의 코딩은 플래그(Flag)로 처리합니다. 날짜와 같은 경우에는 플래그로는 처리할 수 없어서 실제 날짜 값을 이용해야 하구요. 이 예제에 사용된 스크립트는 첨부되어 있으니 참고하시기 바랍니다.

     

    개발자에게 후원하기

    MGtdv7r.png

     

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

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

    감사합니다~

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

    첨부파일

    댓글목록

    등록된 댓글이 없습니다.