오토잇

오토잇(Autoit)
개발자Jonathan Bennett
& AutoIt Team
발표일1999년 1월(27년 전)(1999-01)
최근 버전3.3.16.1
최근 버전 출시일2022년 9월 19일(4년 전)(2022-09-19)
미리보기 버전3.3.16.1 RC
미리보기 버전 출시일2022년 6월 2일(4년 전)(2022-06-02)
운영 체제마이크로소프트 윈도우 (Win32)
라이선스프리웨어
웹사이트http://www.autoitscript.com/
영향을 받은 언어
오토핫키
영향을 준 언어
베이직

오토잇(Autoit)은 마이크로소프트 윈도우를 위한 프리웨어 자동화 언어이다. 초기 버전은 주로 마이크로소프트 윈도우의 프로그램을 위한 자동화된 스크립트를 만드는 데에 사용되었다. 그러나 지금은 전반적인 디자인과 기능 모두에서 향상된 기능을 포함하는 프로그래밍 언어로 발달하였다.

최근에 출시된 버전 3은 문법이 더 베이직에 가깝게 되었고, 3 세대 프로그래밍 언어와 Variant라고 불리는 자료형을 포함한다. 지원되는 운영 체제는 윈도 95, 98, ME, NT4, 2000, XP, 2003, 비스타, 2008 이 있다. (그러나 3.3.0.0 버전 이후는 윈도우 9x 지원 부분이 제거되었다.)

오토잇 스크립트는 바이트 코드(a3x) 혹은 실행 파일(실행 가능한 bin 파일에 a3x 파일을 추가함.)로 변환이 가능하다. 실행 파일은 오토잇 인터프리터가 설치되어있지 않은 컴퓨터에서도 잘 작동한다. 다양한 함수 라이브러리(UDF, "사용자 정의 함수"로 알려져 있다.)는 표준으로 포함되어 있거나 웹사이트에서 추가할 수 있다. 오토잇은 사실상 IDE인 SciTE 편집기와 함께 배포된다. 변환기 및 도움말 텍스트를 완벽하게 배포판에 포함되어 오토잇 개발자에 대한 사실상의 표준 환경을 제공한다.

기능

사용

오토잇은 윈도나 자동화 작업(웹사이트나 네트워크 모니터링, 디스크 최적화나 백업등)에 필요한 유틸리티를 만들 수 있다. 또한 응용 프로그램을 제어나 테스트하는 데에 오토잇 스크립트를 사용할 수 있지만 온라인 게임에서 봇을 돌리거나 악성코드를 만드는 데에 사용될 수도 있다. 대한민국 IT 산업에서는 주로 소프트웨어 테스트, 휴대용 프로그램으로의 리팩 등에 사용하고 있다.

역사

커뮤니티

오토잇 커뮤니티는 2009년 6월 27일 오후 8시 50분 을 기준으로 30,915명의 사용자와 660,898개의 글이 있고, 최대 동시 접속자수는 한국 시간으로 2007년 7월 13일 오전 5시 2분에 4,882명이다.

문법

연산자

산술 연산자 설명
+ 더하기
- 빼기
* 곱하기
/ 나누기
& 문자열 결합
^ 제곱
관계 연산자 설명
= 같음
== 같음 (대소문자 구분)
<> 같지 않음
> 크다
>= 크거나 같다
< 작다
<= 작거나 같다
논리 연산자 설명
AND 이고
OR 또는
NOT 아님

연산자 우선순위

가장 높음
NOT
^
* /
+ -
&
< > <= >= = <> ==
AND OR
가장 낮음

헬로 월드 프로그램

ConsoleWrite("Hello World!" & @CRLF)
; ConsoleWrite는 함수이고 단 하나의 인자만 받아서 쓴 바이트 개수만큼 반환한다.
; &는 문자열 결합이며 이 연산자를 사용하면 어떤 변수라도 문자열로 변환된뒤 결합된다.
; @CRLF는 타 프로그래밍 언어에서 \r\n을 의미한다. (캐러지 리턴과 라인 피드)
; ;는 주석 표시에 사용된다.

위의 오토잇 스크립트 소스는 표준 출력에 "Hello World"를 출력한다.

그러나, 일반적으로 오토잇은 콘솔에 최적화되어 있지 않고 주로 GUI을 이용하기 때문에 대부분은 헬로 월드 프로그램으로 메시지 상자를 이용한다.

MsgBox(64, Default, "Hello World!")
; MsgBox는 메시지 상자를 띄우는 함수이고 사용자가 선택한 버튼에 따라서 반환되는 값이 달라진다.
; 첫 번째 인자로 넘긴 64는 MsgBox 함수에서 메시지 상자에 정보 아이콘을 추가할 때 사용된다.
; (몇몇 함수는 한 인자를 flag로 받아서 필요한 옵션을 추가하려면 해당 값만 추가하면 된다.)
; Default는 사용되는 부분에 따라서 다르게 이용된다, 기본적으로 기본값이다.
; (MsgBox 함수는 두 번째 인자가 Default 이면 스크립트의 이름(@ScriptName)을 출력한다.)
; 문자열은 "나 '로 감쌀 수 있다.

이 오토잇 스크립트 소스는 정보 아이콘을 포함한 메시지 상자를 출력한다.

가능한 내용

한계

알려진 문제

현재 오토잇에서 알려진 문제는 다음과 같다.

Dim $Aa[3] = [1, 2, 3], $Ab = $Aa, $Ba[3] = [4, 5, 6]
Dim $sFormat = "%8s | %-8s| %-8s| %-8s\n"

ConsoleWrite("(Aa, Ab, Ba) 배열을 비교합니다." & @CRLF)
ConsoleWrite(StringFormat($sFormat, "Compare", _
	"=", "==", "<>"))
ConsoleWrite(StringFormat($sFormat, "Aa, Ab", _
	($Aa = $Ab), ($Aa == $Ab), ($Aa <> $Ab)))
ConsoleWrite(StringFormat($sFormat, "Aa, Ba", _
	($Aa = $Ba), ($Aa == $Ba), ($Aa <> $Ba)))

#cs 실행 결과 나온 출력
(Aa, Ab, Ba) 배열을 비교합니다.
 Compare | =       | ==      | <>
   Aa,Ab | False   | True    | True
   Aa,Ba | False   | True    | True
#ce

같이 보기

각주

  1. ↑ “AutoIt Downloads”. AutoIt. 2022년 11월 7일에 확인함.
  2. ↑ “AutoIt 3.3.16.1 Release Candidate”. AutoIt. 2022년 6월 8일에 확인함.
  3. ↑ 사용되는 의도에 따라서 자동 변환이 되어 개발자가 편하게 사용할 수 있음. 문자열, 정수, 실수, 구조체, 포인터, 핸들, 배열등
  4. ↑ (영어) UDF 표준문서]
  5. ↑ (영어) 오토잇 포럼의 통계, 맨 아래 참고
  6. ↑ (영어) PluginOpen 함수 레퍼런스 보관됨 2010-03-07 - 웨이백 머신
  7. ↑ (영어) 오토잇 플러그인이 곧 등장합니다.
  8. ↑ (영어) 오토잇에서 어셈블리를 지원합니다.

외부 링크