2016. 3. 3.

특정 프로그램에 사용에 제한을 주는 시간, 기간 걸기

================================================================
=========================    시     간    ==============================
================================================================


[출처 : http://autohotkey.co.kr/b/5-2389] 부메랑님의 질문글


프로그램에 사용시간걸기 하는방법좀 알려주세요.
기본적으로 컴퓨터날짜나 그런것을 손쉽게 변경하면 기간이 연장된다던가 하는일없이
정확한 날짜계산을 토대로 중지하는 스크립트좀 알려주셨으면합니다.
제가 오토핫키 스크립트쪽엔 초보라 설명도 덧붙여주셨으면좋겠구요.
스크립트 공유게시판에 올라와있는 여러글을 봐도 모르겠습니다.
알려주세요.
---------------------------------------------------------------------------------
#SingleInstance ignore
IfExist,사용시간.txt
fileread,기존_사용_시간,사용시간.txt
else
기존_사용_시간=0
if 기존_사용_시간=
기존_사용_시간=0
if 기존_사용_시간>10
{
msgbox 사용기한이 지났습니다.
exitapp
}
menu, tray, NoStandard
menu, tray, DeleteAll
Menu, tray, add, EXIT
시작_시간:=A_TickCount//1000
Gui,Add,button,,종료
Gui,Show
return

EXIT:

GuiClose:
button종료:
종료_시간:=A_TickCount//1000
사용_시간:=종료_시간-시작_시간
msgbox % 사용_시간
IfExist,사용시간.txt
filedelete,사용시간.txt
전체_사용_시간:=사용_시간+기존_사용_시간
fileappend,%전체_사용_시간%,사용시간.txt
exitapp
-------------------------------------------------------

스크립트 공유게시판에서 따온건데 무슨말인지 모르겠습니다.
제가원하는건 현재날짜에서 원하는날짜까지 사용시간을 제한해두는것이고
추가적으로 매크로를 덧붙여서 매크로에 사용시간이 있는것을 만들고싶은데요.
어떻게 못할까요?


================================================================

[ImMBR님의 답변]

1. sportinglife.com을 이용, 시간을 구하는 방법
urldownloadtofile,
http://www.sportinglife.com/,date.txt
fileread,date,date.txt
pos:= instr(date,"clock")
pos += 13
stringmid, date, date,%pos%, 8
msgbox %date%
return



2. ntp 타임서버를 이용해서 해당 시스템의 현재 시간과 표준시와의 일치여부를 확인한 후
일치하지 않으면 스크립트의 실행을 중지시키거나, 강제로 인터넷 표준시와 시스템 시간을 동기화 시킨다.
답변링크 : https://autohotkey.com/board/topic/2618-synchronize-clock-with-internet-time-servers-at-startup/ <- 참조







================================================================
=========================    기     간    ==============================
================================================================

[출처 : http://autohotkey.co.kr/b/5-2836] 베르바님의 질문글


사용기간 제한에 대한 정확한 날짜...질문요



인터넷에 연결되어 있다는 가정하에 다음과 같은 방식으로 정확한 날짜를 구할 수 있습니다.

urldownloadtofile,http://www.sportinglife.com/,date.txt
fileread,date,date.txt
pos:= instr(date,"clock")
pos += 13
stringmid, date, date,%pos%, 8
msgbox %date%
return


위의 방식의 소스를 토대로 하여,

인터넷으로 정확한 시간과 날짜를 구한다음,
특정 날짜의 수치를 대입시켜서 그 날짜 이후에는 사용이 불가능 하도록 만들기 위한
소스를 제작중입니다.

예를 들어서,

9월1일까지는 사용이 가능하며,
정상적으로 사용이 가능합니다 라는 메시지 박스를 송출하고

9월1일이후부터는 사용이 불가능하며,
exitapp 스크립트를 종료시키면서, 사용이 불가능합니다 라는 메시지 박스가 나오게
만들고 싶습니다.

위의 인터넷 연결하여 데이터를 받아오는 방식으로 소스를 수정할려고 하니
조금 복잡해지는거 같고 이렇게도 해보고 저렇게도 해봤는데
아직 실력이 초급수준이라서 많이 어렵네요.

설명까지 붙여서 알려주시면 정말 감사하겠습니다.


---------------------------------------------------------------------------
[ImMBR님 답변]

;올려드렸던 예제 스크립트는 제대로 작동을 하는 것으로 알고 있습니다.
;그러면 모든 문제는 해결된것 아닌가요?
;if문 하나면 해결될 것 같은데...

LimitDate=090901  ;  2009년 9월 1일

urldownloadtofile,http://www.sportinglife.com/,Intdate.txt
fileread,date,Intdate.txt
pos:= instr(date,"clock")
pos += 13
stringmid, date, date,%pos%, 8
StringReplace, date, date,/,,A
StringRight, yy, date,2
StringLeft, dd, date,2
StringMid, mm, date, 3, 2
Internetdate=%yy%%mm%%dd%
filedelete,Intdate.txt

if Internetdate>%LimitDate%
{
msgbox, , Alert , 사용기간 만료.
ExitApp
}

return