59 - [오토핫키] 유통기한 지정하기

    웹 페이지의 소스를 가져오는 방법을 알아봤는데 소스를 어디에 사용하면 좋을까요? 블로그의 첨부파일을 일괄로 다운 받거나, 자동 로그인을 하거나, 웹 문서의 내용을 엑셀, 워드 등의 일반 문서로 옮길수도 있죠. 이렇게 다양한 활용 방법들이 있지만 이번 포스팅에서는 스크립트의 사용기간을 지정해보는 방법을 알아봅시다.

     

     

    예제

    컴퓨터 시간 활용

    LimitTime=20180101  ;만료기간지정. 예)2018년01월01일

    StringLeft, Today, A_Now, 8  ;내장변수 A_Now는 현재 날짜와 시간을 알려주는데 그 중 년,월,일 을 추출합니다.
      ;FormatTime, Today, , yyyyMMdd  ;알려드리진 않았지만 FormatTime 이라는 명령어로도 사용할 수 있어요.
    If Today > %LimitTime%  ;현재 날짜와 만료기간을 비교합니다.
    {
      MsgBox, 16, 기간만료, 사용기간이 만료되었습니다.
      ExitApp  ;날짜가 지났을 경우 스크립트를 종료합니다.
    }


    ;~Script~

     

    우선 간단한 스크립트로는 컴퓨터의 시간을 활용하여 날짜를 비교한 후 만료기간이 지났을 경우 스크립트를 종료합니다. 매우 간단한 스크립트지만 컴퓨터의 날짜를 바꿔버리면 무용지물이기 때문에 활용도가 매우 낮아요.

     

     

    인터넷 시간 활용

    LimitTime=20180101  ;만료기간지정. 예)2018년01월01일

    WB := ComObjCreate( "InternetExplorer.Application" )

    WB.navigate( "http://time.navyism.com/" )

    While WB.readyState <> 4 || WB.document.readyState != "complete" || WB.busy

    Sleep, 100

    Today := WB.document.getElementById( "time_area" ).innerText  ;DOM스크립트로 날짜를 얻어옵니다.

    WB.QUIT()  ;생성했던 Internet Explorer를 닫습니다.

    Today := SubStr(RegExReplace(Today, "[^\d]"), 1, 8)  ;정규식으로 숫자만 남긴 후 SubStr로 년,월,일 을 추출합니다.

    If Today > %LimitTime%  ;인터넷 날짜와 만료기간을 비교합니다.

    {

      MsgBox, 16, 기간만료, 사용기간이 만료되었습니다.

      ExitApp  ;날짜가 지났을 경우 스크립트를 종료합니다.

    }Else{

      EnvSub, LimitTime, %Today%, days  ;인터넷 날짜와 만료기간의 날짜 차이를 구합니다.

      MsgBox, 64, 사용가능기간, 사용기간 %LimitTime%일 남았습니다.

    }


    ;~Script~

     

    인터넷시간을 얻어오기 때문에 스크립트를 뜯어 고치지 않는 이상 만료기간이 지나면 사용이 불가능합니다. 조금더 강력한 보안이 되겠죠? 하지만 이 또한 인터넷 연결을 해제한 후 사용하게 되면 사용되는 단점이 있죠.

    해결 방법은 인터넷에 연결이 되지 않았을 경우 실행되지 않게 해주면 간단히 해결됩니다. 인터넷의 연결은 어떻게 확인해 볼 수 있을까요? 여러분이 생각해 보세요~~

    또한 34 - [오토핫키] GUI Font와 Text 에서 다룬 로그인을 함께 접목하면 인증된 회원만 지정된 기간동안 사용할 수 있는 스크립트로 만들 수 있겠죠?

     

     

     

     

     

     

    Posted by 옹봉이