이 스크립트는 네이버 무인카페 디히님의
"오토잇을 이용한 프로그램다운로드 설치파일 제작하기.. "
에 첨부된 스크립트 중 일부 내용만 발췌하였습니다.



오늘은 AutoIt을 활용하여 자동 다운로드 & 설치를 배워봅시다.
이 방법의 단점은 홈페이지 다운로드 주소가 변경될 경우 무용지물이 된다는 것입니다.
따라서 버전 업데이트가 자주 되는 프로그램에는 적합하지 않겠죠.
예제 프로그램은 네이트온 입니다. (XP 기준입니다. 비스타는 네이트온 설치 파일이 다릅니다.)



$downfile = "http://nateondownload.nate.com/download/NATEON37.EXE"     ;설치 파일 다운로드 주소 입력
$filesize = InetGetSize( $downfile )
DirCreate("C:\snoopy")                                                                           ;임시 폴더 만들기
ProgressOn("네이트온 다운로드", "다운로드 진행상황", "0% 다운로드 중...")    ;다운로드 창 타이틀 설정
InetGet($downfile, "C:\snoopy\nateon37.exe",1,1)                                    ;파일 다운로드 하기
While @InetGetActive
$downsize = @InetGetBytesRead
$per = ($downsize / $filesize) * 100
$per = Int( $per )
ProgressSet( $per, $per & "% 다운로드 중...")
Sleep(200)
WEnd
ProgressSet(100 , "다운로드를 완료하였습니다.", "완료")
Sleep(500)
ProgressOff()

;지금까지 네이트온 다운로드 스크립트였습니다.
;빨간색 주석 달린 줄만 각 프로그램에 맞게 수정해주시면 되겠죠.
;지금부터 네이트온 설치 스크립트를 시작하겠습니다.

RUN("C:\SNOOPY\NATEON37.EXE")                                                      ;다운받은 경로 잘 써야겠죠
WINWAIT("네이트온 설치 프로그램","네이트온 설치")
IF NOT WINACTIVE("네이트온 설치 프로그램","네이트온 설치") THEN WINACTIVATE("네이트온 설치 프로그램","네이트온 설치")
WINWAITACTIVE("네이트온 설치 프로그램","네이트온 설치")
SEND("!N")
WINWAIT("네이트온 설치 프로그램","사용권 계약")
IF NOT WINACTIVE("네이트온 설치 프로그램","사용권 계약") THEN WINACTIVATE("네이트온 설치 프로그램","사용권 계약")
WINWAITACTIVE("네이트온 설치 프로그램","사용권 계약")
SEND("!A!N")                                                                   
WINWAIT("네이트온 설치 프로그램","설치 유형")
IF NOT WINACTIVE("네이트온 설치 프로그램","설치 유형") THEN WINACTIVATE("네이트온 설치 프로그램","설치 유형")
WINWAITACTIVE("네이트온 설치 프로그램","설치 유형")
SEND("!N")
WINWAIT("네이트온 설치 프로그램","이제 프로그램을 설치할 수 있습니다.")
IF NOT WINACTIVE("네이트온 설치 프로그램","이제 프로그램을 설치할 수 있습니다.") THEN WINACTIVATE("네이트온 설치 프로그램","이제 프로그램을 설치할 수 있습니다.")
WINWAITACTIVE("네이트온 설치 프로그램","이제 프로그램을 설치할 수 있습니다.")
SEND("!I")

;지금부터 마지막에 셋팅하는 창입니다.
;원래는 키보드 방향키로 가능했는데 이상하게 이 버전은 안되네요.
;따라서 마우스 신공을 한번만 사용하겠습니다. 그 다음부턴 방향키로 되네요.

WINWAIT("네이트온 설치 프로그램","네이트온 설치완료")
IF NOT WINACTIVE("네이트온 설치 프로그램","네이트온 설치완료") THEN WINACTIVATE("네이트온 설치 프로그램","네이트온 설치완료")
WINWAITACTIVE("네이트온 설치 프로그램","네이트온 설치완료")
WINMOVE("네이트온 설치 프로그램","네이트온 설치완료",0,0)
MOUSECLICK("LEFT",49,170)
SEND("{DOWN}{SPACE}{DOWN}{SPACE}{DOWN}{SPACE}!N")
WINWAIT("네이트온 설치 프로그램","네이트온 설치 완료")
IF NOT WINACTIVE("네이트온 설치 프로그램","네이트온 설치 완료") THEN WINACTIVATE("네이트온 설치 프로그램","네이트온 설치 완료")
WINWAITACTIVE("네이트온 설치 프로그램","네이트온 설치 완료")
SEND("{SPACE}")

Sleep(3000)
FileDelete("C:\snoopy\nateon37.exe")                                                     ;네이트온 설치파일 지우기
DirRemove("C:\snoopy")                                                                         ;임시폴더 지우기




이상으로 허접한 설명을 마치겠습니다.

  1. BlogIcon 쩡아™
    2008.06.30 09:07 신고

    대단하십니다..
    근데 이미 네이트온이 설치되었을 경우 이미 설치되었다 라던지 하는 알림창을 띄우는것도 좋을것 같습니다..

  2. BlogIcon 정™
    2008.06.30 16:49 신고

    그리고 중요한 것은 비스타 이외의 윈도우 버전에 해당하는 소스군요. 어떻게 윈도우 판별하는 방법이 없을지?...

    • BlogIcon AirBorne
      2008.06.30 18:14 신고
      수정 및 삭제

      디히님 스크립트를 보니 네이트온이 설치되어 있는지 아닌지를 판별할 때 RegRead 커맨드로
      특정 레지스트리가 존재하는지 아닌지로 하더군요.
      이 방법으로 OS 종류도 판별 가능하다고 봅니다. 대신 종류에 따라 다른 설치파일을 다운받고 설치하려면
      조건문을 잘 짜야겠지요.

    • BlogIcon 삼각형
      2009.01.29 18:32 신고
      수정 및 삭제

      @OSVersion 이라는 매크로가 있습니다. 즉 스크립트의 맨 처음에
      if Not @OSVersion = 'WIN_XP' Then
      MsgBox(0,'윈도우 XP가 아님','윈도우 XP가 아닙니다. 이 스크립트는 XP가 아니면 동작하지 않습니다.')
      Exit
      EndIf
      이런 스크립트를 넣으면 되죠.
      나머지는 Autoit도움말 참조

      종류에 따라 하고 싶다면
      if @OSVersion = 'WIN_VISTA' then
      비스타 설치 스크립트
      else
      비 비스타 설치 스크립트
      endif
      하면 되고

  3. BlogIcon 바이크
    2009.08.26 20:21 신고

    Autoit 모든 스크립트 작성하실때
    맨 상단에다가
    #requireadmin 라고 추가하시면
    윈도우 버젼별로 스크립트 따로 만들필요없이
    윈도우 Xp,비스타, 윈도우7까지 모두 작동이 됩니다.