2008년 6월 21일 토요일

AutoIt을 활용하여 간단한 유틸리티 자동설치 프로그램을 만들어보자

다 쓰고 보니 상당히 장문이군요.
하지만 제가 말이 많아서 그렇지 내용은 별로 많지 않습니다.
천천히 하나씩 하나씩 따라오시면 쉽게 하실 수 있습니다.



오늘은 AutoIt 간단한 사용법을 배워보겠습니다.
사실 프로그래밍 조금 하신 분들은 이런게 우스우실 겁니다.
하지만 저처럼 프로그래밍의 "ㅍ" 자도 모르는 사람들에겐 엄청 재미있는 프로그램일 수도 있습니다 ^^

사실 저는 관련 커맨드를 거의 모르기때문에 아주 제한적인 것만 보여드리겠습니다.
자세한 사항은 프로그램 자체의 도움말이나 관련 싸이트에 있습니다.
고급기술을 익히시면 진짜 엄청 복잡한 프로그램도 만들 수 있지 않을까 싶습니다.

이 가이드에선 알집 7.13 버전으로 진행하겠습니다.
그대로 보고 따라하기 하시려면 이 파일로 받아주세요.




제가 사용하는 커맨드의 종류는 4-5개 정도밖에 안 됩니다.
이런 간단한 커맨드만 익혀도 집에서 혼자 유틸리티 설치용 프로그램 만드는건 쉽게 가능하실 겁니다.

먼저 AutoIt을 설치합니다.



이걸 왜 설치하냐면 창 정보 보는거랑 (필요하면 마우스 포인트 찍는거랑) EXE 컴파일 때문에 설치합니다.

설치를 다 하셨으면 AutoIt Window Info 프로그램을 실행해주세요.
그리고 옵션에서 Freeze 를 선택해주세요.

사용자 삽입 이미지


지금부터 스크립트를 작성하겠습니다.
즉 여러분들께서 프로그램을 짜시는겁니다.

기본적인 골격을 먼저 설명드리겠습니다.

RUN("설치할 프로그램.EXE")
WINWAITACTIVE("설치할 프로그램 창 이름","보조 텍스트")
SEND("키보드 자판")

간단하죠?
설치 프로그램을 실행시킨 다음에 각 단계에 맞는 설치창이 뜨기를 기다립니다.
그리고 그 창이 뜨면 특수한 키보드나 마우스 입력을 지시하는 것입니다.

대부분의 프로그램은 그냥 잘 되는데 일부 프로그램에선 중간에 걸리는 경우가 있습니다.
그래서 WINWAITACTIVE와 함께 IF NOT WINACTIVE를 함께 사용해주기도 하는데
여기서는 완전 초보를 위한 방법이므로 아주 간단한 커맨드만 사용하겠습니다.
좀 더 고난도의 스킬을 습득하시려면 혼자 메뉴얼 보고 연구하시면 됩니다.

먼저 알집 설치프로그램을 실행시켜야겠죠.
메모장을 열어주시고
다음과 같이 적습니다.

RUN("ALZip713.exe")

여기서 절대경로를 입력하지 않았기 때문에 나중에 컴파일한 실행파일은 알집 설치파일과 같은 폴더에서 실행하셔야 합니다.

그럼 알집 설치창이 뜨겠죠.
일단 스크립트 작성중이니 수동으로 알집 설치창을 띄워봅시다.

사용자 삽입 이미지


그러면 보안 경고창이 뜨는데 스크립트에서 실행하면 이 창이 뜨지 않습니다.
바로 다음 창이 뜨게됩니다. 실행 누르시고

사용자 삽입 이미지

이렇게 설치 창이 뜨게됩니다.

이제 메모장에 다음과 같이 적습니다.

WINWAITACTIVE("설치 - 알집","알집 설치를 환영합니다.")
SEND("!N")

이 말이 뭘까요? 처음에 알집 설치프로그램을 실행시켰죠? 그 다음에 저 창이 뜨잖아요.
그러니깐 위에 줄은 저 창이 뜰 때까지 기다리라는 뜻이고 아래 줄은 Alt + N 버튼을 누르라는 소리입니다.
즉 저 창이 뜨면 "다음" 버튼을 눌러주라는 것이죠.

여기서 WINWAITACTIVE 다음에 창 이름하고 보조 텍스트를 적어야 하는데 어떻게 적냐구요?
물론 눈에 보이는대로 그냥 타이핑 하시면 됩니다. 그런데 간혹 특수문자라든지 귀찮은게 들어갈 수도 있고
실수로 오타가 나면 안되겠죠?
따라서 아까전에 제가 처음에 AutoIt 설치하고 AutoIt Window Info 프로그램을 띄우라고 했죠?
이 프로그램을 이용하겠습니다.

사용자 삽입 이미지


AutoIt Window Info 프로그램을 보시면 옆에 Finder Tool이 있습니다. 과녁판 같이 생긴 동그라미 말입니다.
저걸 드래그해서 알집 설치창에다가 가져가보면 아래쪽에 창에 대한 정보가 나옵니다.
저기 텝을 보시면 윈도우 컨트롤 비주얼텍스트 히든텍스트 ... 줄줄줄 나오는데요
윈도우 텝에는 알집 창의 타이틀이 나오고 비주얼 텍스트에는 보조 텍스트가 나옵니다.

옆으로 쭉 넘기면 마지막에 Summary 텝이 나오는데 그 텝을 이용하시면 됩니다.
거기 보시면 다 나옵니다.

Title 부분에서 설치 창 제목을 복사하시고 Visible Text 부분에서 대충 보고 아무 줄이나 하나 선택하세요.
그냥 눈에 보이는대로 적어도 되는데 이게 더 편리합니다.

그래서 WINWAITACTIVE("설치 - 알집","알집 설치를 환영합니다.") 라는 명령어를 만들게 된 것입니다.
저기까지 하면 저 창을 기다렸다가 나오면 "다음"을 클릭하겠죠.
근데 저는 Alt + N 을 했는데 실제로 엔터나 스페이스로 해도 됩니다. 하지만 Alt + N이 정확하고 실수가 없더군요.

자 그럼 다음 창으로 넘어가봅시다.

사용자 삽입 이미지


이제 라이선스 계약 동의라는 창이 나왔습니다. 이녀석은 어떻게 해야할까요?
역시 이 녀석이 활성화 될 때까지 기다리라는 명령어와 "동의함", "다음" 을 차례대로 눌러줘야겠죠?

WINWAITACTIVE("설치 - 알집","라이선스 계약 동의")
SEND("!A!N")

이제 감이 오시나요? 이렇게 간단한 구조가 계속 반복되는 것입니다 ^^

다음 창은 설치할 폴더 선택하는 것이군요.

사용자 삽입 이미지


여기서는 엔터를 눌러도 되겠지만 역시 Alt + N 하시면 되겠죠?

WINWAITACTIVE("설치 - 알집","설치할 폴더 선택")
SEND("!N")

다음 창으로 넘어가겠습니다.

사용자 삽입 이미지

시작메뉴 폴더 선택하는 창입니다.
여기서 물론 단순하게 Alt + N 으로 넘어가도 되는데
저는 사실 유틸리티 설치할 때 시작 폴더같은거 잘 안 만듭니다.
더욱이 알집같이 압축 프로그램은 실행할 일이 없고 항상 마우스 우클릭으로만 사용하니까 시작메뉴에 있을 필요성을 못 느낍니다. 아마 저와 비슷하신 분들이 많이 계실겁니다.

그럼 여기서 저기 "시작메뉴 폴더를 만들지 않습니다" 부분에 네모상자에 체크를 해야겠지요?
그런데 방법이 두가지가 있습니다.
하나는 키보드를 이용하는 방법이고 하나는 마우스를 이용하는 방법입니다.
뭐가 더 좋을까요?

마우스 이용시에 주의할 사항이 있습니다.
모든 창이 모든 컴퓨터에서 같은 위치에 뜨지는 않을겁니다.
그렇다면 특정한 포인트를 찍어버린다면 다른 컴퓨터에선 허공에 마우스 클릭을 할 수도 있겠죠?
따라서 설치 창을 특정 위치로 옮겨놓고 마우스 클릭하는 방법이 있습니다.

사실 처음부터 마우스로만 다 할 수도 있습니다.
그게 만들기는 좀 귀찮지만 남들이 보면 엄청 멋있어 보일 수도 있죠 ㅎㅎ

아무튼 이 창에서 마우스에 대한 간단한 소개를 하겠습니다.
말씀드렸듯이 이 창을 특정 위치로 옮긴 다음에 마우스를 찍어주셔야겠죠?
편의를 위해 0,0 위치로 이동시키겠습니다. 즉 화면 좌측 상단으로 창을 옮기는겁니다.

WINWAITACTIVE("설치 - 알집","시작메뉴 폴더 선택")
WINMOVE("설치 - 알집","시작메뉴 폴더 선택",0,0)

그 다음 체크박스에 클릭을 해줘야겠죠? 저 위치를 어떻게 알아낼 수가 있을까요?
바로 아까전에 띄워놓으신 AutoIt Window Info 프로그램에 답이 있습니다.
그 과녁판을 체크박스에 옮겨가시면 좌표가 표시됩니다.

제가 찍어보니까 좌표가 54,322 로 나오네요.
창을 0,0으로 옮긴 기준으로 말씀드리는겁니다.

그런데 주의하실 사항은 테마에 따라서 창이 약간 다르기 때문에
이게 윈도우 자동설치에 적용하면 약간 달라질 수가 있습니다.
자동설치시 창이 고전테마 창으로 설치된다면 약간 더 위쪽에 포인트를 찍어야합니다.
만약 윈도우 자동설치용으로 만드실거라면 처음부터 고전테마로 변경하고 작업하시면 되겠죠.

아무튼 저 위치를 마우스로 클릭하는 방법은

MOUSECLICK("LEFT",54,322)

다음 버튼도 Alt + N 으로 하지 않고 마우스 클릭 해볼까요?

MOUSECLICK("LEFT",341,363)

만약에 마우스 연타를 하고싶으시다면?

MOUSECLICK("LEFT",x좌표,y좌표,횟수) 이렇게 뒤에 횟수까지 추가해주시면 됩니다.

기본값이 1이기 때문에 위에는 따로 적지 않았습니다.

마우스에 대한 내용은 이정도로만 하고 다시 저 창에서 키보드로 하는 방법으로 가겠습니다.

"시작메뉴 폴더를 만들지 않습니다" 로 이동하려면 Tab 키를 이용합니다.
Tab을 두번 누르면 선택할 수 있게 가더군요. 거기서 스페이스 눌러주고 Alt + N 해주면 되겠네요.

SEND("{TAB 2}{SPACE}!N")

다음 창으로 넘어갑시다.

사용자 삽입 이미지

여기서도 마찬가지로 저는 바탕화면 아이콘, 빠른 실행 아이콘, 시작 메뉴에 아이콘 이런거 안만듭니다.
따라서 저것들을 다 체크 해지해줘야 합니다.
역시 Tab 키와 스페이스 키로 해결하겠습니다.

WINWAITACTIVE("설치 - 알집","아이콘 설정")
SEND("{SPACE}{TAB}{SPACE}{TAB}{SPACE}!N")

다음 창으로 넘어가겠습니다.

사용자 삽입 이미지

저는 역시 이 창에서도 알툴바를 사용하지 않기 때문에 체크를 해지하겠습니다.
Tab 키를 7번 눌러야 알툴바 설치하기 체크박스로 갈 수 있더군요.
거기서 스페이스 눌러주고 다시 텝 두번에 다시 스페이스

WINWAITACTIVE("설치 - 알집","설치준비")
SEND("{TAB 7}{SPACE}{TAB 2}{SPACE}")

그 다음이 문제입니다.
알집이든 곰플이든 보통의 프로그램과 달리 이상한게 튀어나와서 말썽을 일으킵니다.
알 시리즈에선 바로 환경 설정 창이 골칫거리입니다.

사용자 삽입 이미지


환경 설정 창은 알집 설치프로그램과 달리 단독으로 ALZIP.EXE가 실행된 상태입니다.
따라서 저 프로세스를 죽여주시면 됩니다.
이녀석이 설치창이랑 같이 떠버리기 때문에 이녀석을 기다렸다가 먼저 죽이고 합시다.

PROCESSWAIT("ALZIP.EXE")
PROCESSCLOSE("ALZIP.EXE")

이녀석을 죽이고 나서 원래의 설치창이 활성화가 되면 좋은데
활성화가 안되면 골치아픕니다.
그럼 WINWAITACTIVE 해놔도 하루종일 활성화 될 때까지 기다리겠죠?
그래서 아까전에 말씀드린 IF NOT WINACTIVE를 여기서는 써 줄 필요성이 있습니다.
물론 없어도 잘 되는 경우도 있는데 간혹 그 창이 활성화가 안 되는 경우가 있어서 강제로 해줘야 합니다.

사용자 삽입 이미지

이녀석을 혹시나 모르니깐 강제로 활성화 시키고 Alt + N을 누르겠습니다.

IF NOT WINACTIVE("설치 - 알집","정보") THEN WINACTIVATE("설치 - 알집","정보")
WINWAITACTIVE("설치 - 알집","정보")
SEND("!N")

다음 창입니다.

사용자 삽입 이미지

이건 깔끔하게 Alt + N으로 마무리 되겠네요.

WINWAITACTIVE("설치 - 알집","설치완료")
SEND("!N")

다음 창입니다.

사용자 삽입 이미지

이번엔 Alt + X 눌러주면 되겠습니다.

WINWAITACTIVE("설치 - 알집")
SEND("!X")

마지막 창 처럼 보조텍스트가 없으면 그냥 안 적으시면 됩니다.



지금까지의 과정을 (마우스로 하는거 빼고) 한곳에 정리해드리겠습니다.

RUN("ALZip713.exe")
WINWAITACTIVE("설치 - 알집","알집 설치를 환영합니다.")
SEND("!N")
WINWAITACTIVE("설치 - 알집","라이선스 계약 동의")
SEND("!A!N")
WINWAITACTIVE("설치 - 알집","설치할 폴더 선택")
SEND("!N")
WINWAITACTIVE("설치 - 알집","시작메뉴 폴더 선택")
SEND("{TAB 2}{SPACE}!N")
WINWAITACTIVE("설치 - 알집","아이콘 설정")
SEND("{SPACE}{TAB}{SPACE}{TAB}{SPACE}!N")
WINWAITACTIVE("설치 - 알집","설치준비")
SEND("{TAB 7}{SPACE}{TAB 2}{SPACE}")
PROCESSWAIT("ALZIP.EXE")
PROCESSCLOSE("ALZIP.EXE")
IF NOT WINACTIVE("설치 - 알집","정보") THEN WINACTIVATE("설치 - 알집","정보")
WINWAITACTIVE("설치 - 알집","정보")
SEND("!N")
WINWAITACTIVE("설치 - 알집","설치완료")
SEND("!N")
WINWAITACTIVE("설치 - 알집")
SEND("!X")

이제 완성된 스크립트를 확장자 AU3로 저장합니다.
예를 들어 ALZIP.AU3로 저장을 하시고 (알집 설치파일과 같은 위치에)
그 저장된 스크립트 파일에 우클릭 해보시면 Compile Script 라는 메뉴가 있을겁니다.
그걸로 EXE 파일 만드시면 됩니다.

그런데 이렇게 만든 EXE 파일을 바이러스로 오진하는 백신들이 많습니다.
제 생각엔 마우스랑 키보드를 움직이는 프로그램이다보니 아무래도 악용하면 위험할 소지가 있기 때문에
백신 입장에선 그렇게 판단하는게 아닐까 생각됩니다.

제가 위 가이드대로 만들어서 컴파일한 파일 첨부해드리겠습니다.
알집 설치파일과 같은 곳에 두고 이걸 실행하시면 자동설치가 진행됩니다.






이상으로 허접한 설명을 마치겠습니다.
저는 아주 간단한 명령어들만 사용했습니다.
좀 더 복잡한 명령어들은 도움말을 참조하여 (물론 영어입니다만) 스스로 터득하시기 바랍니다.
이걸 응용만 잘 하면 재미있는 프로그램들 만들 수 있습니다 ^^

참고로 중간중간에 잘 되고있는지 확인하고 싶으시면 AU3로 저장해놓고 우클릭해서 Run Script 하시면 됩니다. 그리고 가끔 막히는 컴퓨터가 있는데 그럴 경우에는 IF NOT과 ACTIVATE를 사용해주셔야 합니다.

댓글 13개:

  1. 잘 봤습니다...^^...

    {ENTER} 가 아닌 단축키로 하는 군요...^^...

    답글삭제
  2. 으으으 오늘은 미카 해피엔딩이네요 ㅠㅠ

    올때마다 내가 살람하는 노래가 나온다능

    답글삭제
  3. 좋은 정보 감사합니다

    AirBone님 옆에 배경음악태그 팁이나 강좌 부탁드려도 될까요?

    답글삭제
  4. 스누피님 micro xp 일본어 입력이 안된다고 하셨는데요



    한글2007에서 쉬프트 + 스페이스 누른뒤 da 나 일본어 발음을 적으면 일본어 입력되는것은



    윈도우 자체의 지원이라기 보다는 한글 자체의 지원으로 봐야하는것이 맞을까요???

    답글삭제
  5. 항상 읽을거리를 주셔서 감사합니다.



    오늘도 잘 보고 갑니다. ^^

    답글삭제
  6. @호야 - 2008/06/21 08:32
    네 그건 한글 프로그램 자체 기능입니다.

    답글삭제
  7. @에센스 - 2008/06/21 07:29
    http://snowsage.tistory.com/40



    저도 제작자 블로그에서 가이드 보고 따라했습니다 ^^

    답글삭제
  8. Airbone님 댓글 감사합니다.

    답글삭제
  9. 오호, 좋은 정보 감사합니다^^

    답글삭제
  10. 코드를 대문자로 적으시는 군요. 가독성이 좀 떨어지는것 같은······.

    보통 자동설치하면 /S 하면 거의 다 되지만(MSI 는 /Q)

    하지만 저것도 좋은 방법이네요.

    명령줄을 이용하면 옵션을 설정할 수 없지만 이렇게 하면 옵션을 조정할 수 있겠네요.

    어디선가 본듯한 튜닝XP에서 유틸 자동설치하기가 저방법 처럼 된것 같군요.(옵션이 설정되서 엄청나게 신기해 했던)

    답글삭제
  11. 비밀 댓글 입니다.

    답글삭제
  12. @Anonymous - 2009/11/01 22:57
    au3로 저장한 다음 우클릭 하면 컴파일 메뉴 나올겁니다.



    마우스 위치는 포지션 같네요.

    답글삭제