이 강좌는 "http://cafe.naver.com/usboffice"의
[클로임]님의 글을 필요한 부분만 발췌 했습니다.
AutoIt 을 실행해보자!
어제 썼어야 했던 부분인데 -_-; 정신이 없었는지 빼먹고 말았습니다 (이런게 또 인간미 있고 좋지 않습니까.................. 죄송합니다;)
어제 MsgBox 함수를 갖고 화면에 메세지 상자가 뜬다고 말해놓고 그걸 어떻게 실행시키는지 말씀드리지 못했음에도 눈치빠르시고 열정이 넘치는 분들은 이미 알아내셨을꺼라고 믿어의심치 않습니다.
AutoIt 스크립트를 실행하는 방법은 여러가지가 있습니다. 일단 여러분의 컴퓨팅 환경에 SciTE(편의상 앞으로는 에디터 라고 칭하겠습니다) 가 설치되었다는 가정하에 저는 에디터를 이용한 실행방법에 대해 말씀드리고자 합니다.
일반적으로 프로그램의 세계에서 코딩이라는 작업이 끝나면 Compile(컴파일) 이라는 작업을 하여 코더가 작성한 코드를 컴퓨터가 인식할 수 있는 형태로 가공합니다. AutoIt 스크립트 또한 예외가 아니구요.
이 컴파일 이라는 걸 하는 방법은 다음과 같습니다 ;
* 스크립트가 au3 파일로 저장되어 있어야 합니다.
Tools > Compile 혹은 Ctrl + F7 이왕이면 단축키를 익혀두는것이 좋겠죠 ^^
컴파일 작업을 수행해보면 스크립트가 저장돼있는 경로에 같은 파일명으로 .exe 파일이 생성된것을 볼 수 있습니다.
실행했을때 메세지 상자가 보인다면 제대로 하신거구요 :D
그런데 매번 이런 컴파일 - 실행 을 통해서 확인하기가 번거로우므로 스크립트 코드를 완성한 뒤 릴리즈 전까지 우리는Tools > Go 혹은 F5
를 사용하도록 하겠습니다. Go/F5 는 exe 파일을 만드는 과정없이 바로 결과를 보여주기만 하는 메뉴입니다.
실행/Go/F5 을 줄기차게 눌러대다 보면 심심치 않게 보게 될 장면이 있습니다. 바로 출력창 입니다. 출력창은 컴파일 결과 / 실행 결과를 보여주기도 하며 때에 따라서 문법적 오류가 일어난 부분을 보여주기도 합니다.
제가 AutoIt 을 잘못 설치한 건지 원래 이런건지 AutoIt 에서는 컴파일/빌드 때에는 문법 오류가 체크 되지 않는군요 ;
개별적으로 문법적 오류만을 체크하고 싶다면 Tools > Go 밑의 SyntaxCheck Prod 메뉴를 이용하면 됩니다.
무작정 따라하기 - 윈도우를 띄워보자!
이제 겨우 두 번째 강좌 이지만 벌써 가장 재미있을 법한 부분입니다. 그만큼 AutoIt 이 쉽고 막강하다는 얘기가 될수도 있겠네요.
어쨌든 우리 식대로 바로 코드 쏩니다 :D
1 #include
2
3 GUICreate ("Hello, World!")
4 GUISetState (@SW_SHOW)
5
6 While 1
7 $msg = GUIGetMsg()
8 If $msg = $GUI_EVENT_CLOSE Then ExitLoop
9 Wend
뭐가 주저리 주저리 써있죠? 한줄씩 알아볼까요?
이런! 첫번째 줄부터 완전 낯선 녀석이 등장했습니다. include... 영어공부 좀 해볼까요? ㅋ
in·clude〔〕〔L 「안에 가두다」의 뜻에서〕 vt. (opp. exclude)
; 넣다, (전체의 일부로서) 포함시키다, 끼우다;계산하다
GUI 는 Graphical User Interface 의 약자이구요. 우리가 보는 윈도우, 버튼, 마우스 등등의 것들을 통칭 GUI 라고 부른답니다.
이쯤되면 대충 감이 오는 분들이 있으실껍니다. 1번 라인은 <> 안의 GUIConstants.au3 를 포함시키겠다는 의미죠.
AutoIt 에서 GUI 를 이용한 프로그래밍을 하기 위해선 맨 윗줄을 무조건 1번 라인과 같이 채워줘야 합니다.
왜 이런짓을 해야하는지는 '공통적으로 필요한 부분을 만들어두고 필요할때마다 포함시켜 쓰기위해서' 라고 가볍게만 알고 넘어가도록 하겠습니다.
3~4번 라인에는 GUI 요소를 만들고 그 상태를 지정하는 함수들이 보이네요. 이전 강좌에서도 말씀드렸다시피 함수들이 이름이 매우 직관적입니다 :D
GUICreate 함수는 대충 이렇게 생겼군요;
GUICreate ( "title" [, width [, height [, left [, top [, style [, exStyle [, parent]]]]]]] )
Parameters
title | 윈도우 창 제목 |
width | [옵션] 윈도우의 넓이 |
height | [옵션] 윈도우의 높이 |
left | [옵션] 윈도우 창의 화면상에서의 왼쪽 위치, 기본값은 -1 이며 화면 중앙에 표시 |
top | [옵션] 윈도우 창의 화면상에서의 상단 위치, 기본값은 -1 이며 화면 중앙에 표시 |
style | [옵션] 윈도우의 스타일을 정의, GUI Control Styles Appendix 참조 기본값은 -1 ($WS_MINIMIZEBOX + $WS_CAPTION + $WS_POPUP + $WS_SYSMENU) 몇가지 스타일은 항상 포함 ($WS_MAXIMIZEBOX 나 $WS_SIZEBOX 의 스타일이 포함될 경우$WS_CLIPSIBLINGS + $WS_SYSMENU도 포함됨) |
exStyle | [옵션] 윈도우의 기본 스타일 외 확장 스타일 정의, Extended Style Table 참조 기본값은 -1 |
parent | [옵션] 이미 존재하고 있는 윈도우의 핸들값 -> 해당 윈도우의 자식 윈도우로 윈도우를 생성한다 |
노파심에 말씀드리지만 여기 나오는 윈도우는 운영체제를 말하는 것이 아닙니다 :D
다음 GUISetState 함수를 볼까요 ^^
UISetState ( [flag [, winhandle]] )
Parameters
flag | [옵션] @SW_SHOW = 기본값, 윈도우를 화면에 표시합니다 @SW_HIDE = 윈도우를 숨깁니다 @SW_MINIMIZE = 윈도우를 최소화 @SW_MAXIMIZE = 윈도우를 최대화 @SW_RESTORE = 윈도우 최소화를 되돌립니다 @SW_DISABLE = 윈도우를 비활성화 @SW_ENABLE = 윈도루을 활성화 @SW_LOCK = 윈도우가 다시 그려지지 않도록 잠금 @SW_UNLOCK = 윈도우가 다시 그려지도록 허용 |
winhandle | [옵션] GUICreate 함수에서 반환된 윈도우 핸들값 (기본값은 바로 이전에 사용된 윈도우 핸들값) |
혼란스러워 지기 시작합니다. 핸들이니 스타일이니 당췌 무슨 소린지 -_-;;
오늘은 일단 전부다 무시하고 윈도우를 띄웠다는것에 만족할껍니다. 급하게 먹는 밥이 체할 뿐더러
퇴근 시간이 다가오고 있거든요 -_-;;;;;;;;;
6~9 번 라인은 윈도우가 만들어지고 나서 그것이 계속해서 동작하도록 유지해주는 부분입니다.
만일 6~9번 라인을 삭제하고 실행한다면 윈도우를 화면에 그리고 나서 프로그램이 종료가 되고 윈도우가 사라지니까 화면엔 뭐가 휙 하는 잔상만 보여질껍니다.
그래서 while 이라는 반복문을 통해서 GUIGetMsg() 함수를 실행(6번 라인)되어 윈도우에서 일어나는 이벤트 (최소화, 최대화, 종료 등등) 들을 감시(7번 라인)하다가 종료이벤트가 발생하면 반복문을 종료(8번라인) 하도록 하는 부분이 필요한거죠 :D
코드 부분에 표시된 링크를 눌러보시면 각각 함수들의 flag 와 Parameter, style 등등을 알수 있을껍니다.
'▣중-고급자 활용 > AutoIt 특강' 카테고리의 다른 글
AutoIt (6) (0) | 2008.07.28 |
---|---|
AutoIt (5) (0) | 2008.07.28 |
AutoIt (4) (0) | 2008.07.28 |
AutoIt (3) (0) | 2008.07.28 |
AutoIt (1) (0) | 2008.07.28 |