AutoHotkey_L New Features

이 문서는 AutoHotkey_L 분기에 추가된 특징을 기술합니다. 이 분기는 지금은 간단하게 "AutoHotkey 1.1"라고 부릅니다.

주의: 이 문서는 몇 년간 방치되어 왔으며 최근의 변화로 없어지거나 더 추가된 것이 있을 수 있습니다.


제어 흐름 
Break LoopLabel내포 회돌이로부터 깊이에 상관없이 빠져 나옵니다.
Continue LoopLabel회돌이를 계속합니다. 깊이에 상관이 없습니다.
For x,y in z객체의 내용을 회돌이합니다.
Loop Until조건이 참인 동안 회돌이 합니다. 어떤 종류의 회돌이에도 적용할 수 있습니다.
Try...Catch...Finally구조화 된 예외 처리를 제공합니다.
Throw예외를 던집니다.
명령어 
FileEncoding기본 인코딩을 설정합니다: FileRead, FileReadLine, Loop Read, FileAppend, 그리고 FileOpen.
다음 참조: 텍스트 인코딩
Gui아래의 GUI 개선을 참조하십시오.
IniRead/Write/Delete전체 섹션을 읽고, 쓰고, 지웁니다. 또는 모든 섹션 이름 목록을 열람합니다.
Menu, Icon메뉴 아이템의 아이콘을 설정하거나 제거합니다.
Run매개변수를 해석하도록 개선되었습니다.
SendInput {U+nnnn}유니코드 문자를 전송합니다. 유니코드 문자는 유니코드 빌드에서 직접적으로 사용할 수 있습니다.
SendLevel핫키와 핫스트링이 무시할 인위적인 키보드 이벤트와 마우스 이벤트를 제어합니다.
SetFormat, IntegerFast, h|H소문자나 대문자로 십육진 수의 형식을 설정합니다.
SetRegView, RegView레지스트리 명령어가 32-비트 스크립트에서 64-비트 레지스트리 뷰에 또는 그 반대로 접근하도록 해 줍니다.
Transform, HTML코드 페이지나 HTML 변환을 수행합니다.
WinGet, ..., ProcessPath주어진 창을 소유한 프로세스의 이름과 전체 경로를 열람합니다.
지시어 
#If expression#IfWinActive와 비슷하지만, 어떤 표현식에도 사용할 수 있습니다.
#IfTimeout#If 표현식 하나를 평가하는 데 소비될 최대 시간을 설정합니다.
#MenuMaskKeyWin 이벤트나 Alt 키뗌 이벤트를 마스크하기 위해 사용될 키를 변경합니다.
#Include <Lib>스크립트 파일을 함수 라이브러리 폴더로부터 포함합니다.
#InputLevel핫스트링과 핫키가 무시할 키보드 이벤트와 마우스 이벤트를 제어합니다.
#Warn선택된 조건에 대하여 경고를 켜고 끕니다. 이 에러는 개발자 에러를 가리킵니다.
함수 
ComObj... --
ComObjActive
ComObjEnwrap/Unwrap
ComObjParameter
ComObjType

등록된 COM 객체를 열람합니다.
COM 객체를 포장하거나/풉니다.
매개변수로 건넬 값과 유형을 포장합니다.
COM 객체의 유형 정보를 열람합니다.
ComObjArrayCOM에 사용하기 위해 SAFEARRAY를 생성합니다.
ComObjConnectCOM 객체의 이벤트를 주어진 접두사를 가진 함수에 연결합니다.
ComObjCreateCOM 객체를 생성합니다.
ComObjErrorCOM 에러의 고지를 켜고 끕니다.
ComObjFlagsCOM 포장 객체의 행위를 제어하는 플래그를 열람하거나 변경합니다.
ComObjGetCOM 콤포넌트가 제공하는 객체 주소를 돌려줍니다.
ComObjQueryCOM 객체에 인터페이스 또는 서비스를 질의합니다.
ComObjType유형 정보를 COM 객체로부터 열람합니다.
ComObjValueCOM 포장 객체에 저장된 값이나 포인터를 열람합니다.
ExceptionThrow에 대하여 예외 객체를 생성합니다 (호출 스택에 제한적으로 접근을 제공합니다).
FileOpen객체-지향적 파일 입/출력을 제공합니다.
Func함수를 가리키는 참조를 열람합니다.
GetKeyName/VK/SC키의 가상 키 코드나 스캔 코드 또는 텍스트나 이름을 열람합니다.
InStr 왼쪽이나 오른쪽으로부터 주어진 문자열이 나타나는지 검색합니다.
IsByRefByRef 매개변수에 변수가 제공되는지 결정합니다.
IsObject값이 객체인지 결정합니다.
StrPut / StrGet문자열을 메모리에 또는 메로리로부터 복사합니다. 선택적으로 코드 페이지 사이에 변환합니다.
Trim문자열의 처음과 끝으로부터 어떤 문자들을 걷어냅니다.
RegEx (?CNum:Func)regex 패턴을 평가하는 동안 함수를 호출합니다.
함수 라이브러리새로운 "지역 라이브러리" 그리고 #Include <LibName>.
가변 함수함수는 배열을 통하여 가변 개수의 매개변수를 받을 수 있습니다.
정적 초기화자정적 변수는 이제 어떤 표현식으로도 초기화할 수 있습니다.
객체 
일반일반적인 객체의 사용법과 행위.
객체다른 기능으로 확장할 수 있는 연관 배열.
열거자집단 안의 항목을 열거합니다.
파일파일에 접근할 수 있도록 인터페이스를 제공합니다. FileOpen은 이 유형의 객체를 돌려줍니다.
함수스크립트가 호출할 수 있는 사용자 정의 함수 또는 내장 함수를 가리킵니다.
ComObject위의 ComObj 함수를 참조하십시오.
변수 
A_Is64bitOSOS가 64-비트이면 1 (true)이, 32-비트이면 0 (false)이 담깁니다.
A_IsUnicode유니코드 빌드에서 이변수는 1 (true)이 담깁니다. ANSI 빌드는 정의되어 있지 않습니다. 그래서 그 효과상 거짓(false)입니다.
A_FileEncoding다양한 명령어에 대하여 기본 인코딩을 담고 있습니다; FileEncoding을 참조하십시오.
A_OSVersionWindows 7과 Windows 8을 지원합니다; A_OSVersion을 참조하십시오.
A_PriorKey가장 최근에 키-누름이나 키-뗌 바로 전에 마지막으로 눌려진 키의 이름 ... (자세한 것은 여기를 참조)
A_PtrSize바이트 단위로 포인터의 크기가 담깁니다. 이것은 4 (32-bit) 또는 8 (64-bit)입니다.
A_RegViewSetRegView가 설정한 현재 레지스트리 뷰.
A_ScriptHwnd스크립트의 숨은 메인 창의 유일한 ID (HWND/핸들).
데이터유형 
Ptr32-비트 빌드에서 Int와 동등하고 64-비트 빌드에서는 Int64과 동등합니다. DllCall, NumPut 그리고 NumGet이 지원합니다.
AStr, WStrDllCall만 지원합니다; 스크립트 호환성 참조.
유니코드 
호환성DllCall 등등에서 유니코드를 다루는 법
스크립트 파일스크립트 파일에 유니코드 사용하기.
SendInputSendInput에 유니코드 사용하기.
기타 
ahk_exe창을 소유하고 있는 프로세스 (EXE 파일)의 경로나 이름으로 창을 식별할 수 있습니다.
디버깅상호대화 디버깅 특징 (줄 단위로 실행 등등.).
에러 처리Try/catch/throw 그리고 A_LastError의 유용성 증가.
GUI 개선Gui 관련 명령어를 개선.
아이콘 지원자원 식별자 지원 그리고 다양한 아이콘 크기 지원 개선.
기타 변경스크립트의 호환성에 영향을 미치는 변경들.
버전 이력AutoHotkey_L 개정판 이력.

에러 처리

에러 처리를 위해 많은 명령어가 ErrorLevel 대신에 try/catch의 사용을 지원합니다:

try
{
    FileCopy, file1.txt, C:\folder
    FileDelete, C:\folder\old.txt
}
catch
    MsgBox 에러가 일어났습니다!

추가로, 다음 명령어는 이제 A_LastError를 설정해 디버깅을 돕습니다: FileAppend, FileRead, FileReadLine, FileDelete, FileCopy, FileMove, FileGetAttrib/Time/Size/Version, FileSetAttrib/Time, FileCreateDir, RegRead, RegWrite, RegDelete.

함수 라이브러리

%A_MyDocuments%\AutoHotkey\Lib의 사용자 라이브러리와 AutoHotkey 디렉토리의 표준 라이브러리 말고도, %A_ScriptDir%\Lib에 위치하는 "지역 라이브러리"로부터 함수를 자동 삽입할 수 있습니다. 더 자세한 정보는 함수 라이브러리를 참조하십시오.

#Include <LibName>는 함수 라이브러리 중 하나에 위치한 라이브러리 파일을 명시적으로 포함합니다.

GUI 개선

Gui 명령와 기타 관련된 항목에 수 많은 개선이 이루어졌습니다:

정적 변수

정적 변수는 이제 어떤 표현식으로도 초기화할 수 있습니다. 예를 들어:

Sleep 500
MsgBox % Time() "ms since the script started."
Time() {
    static Tick := A_TickCount
    return A_TickCount - Tick
}

텍스트 인코딩

FileRead, FileReadLine, Loop Read 그리고 FileAppend는 윈도우즈가 지원하는 텍스트 인코딩을 대부분 지원합니다. 단, 시스템의 기본 ANSI 코드 페이지는 지원하지 않습니다. FileEncoding을 사용하면 기본 인코딩을 설정할 수 있습니다. 다음과 같이 FileRead와 FileAppend를 오버라이드 합니다:

FileRead, OutputVar, *Pnnn Filename
FileAppend [, Text, Filename, Encoding]

nnn는 숫치 코드 페이지 식별자가 되어야 하며, EncodingFileEncoding과 같은 형식을 따라야 합니다.

다음도 참조하십시오: 스크립트 호환성

가변 함수 그리고 가변 함수-호출

가변 함수는 배열을 통하여 가변 개수의 인자를 받을 수 있습니다. 반면에, 가변 함수-호출을 사용하면 가변 개수의 매개변수를 함수에 건넬 수 있습니다.

아이콘 지원 개선

비정상적인 크기

크기에 상관없이 운영체제가 지원하는 아이콘 자원이면 얼마든지 실행파일로부터 추출할 수 있습니다. 아이콘 그룹에 여러 크기의 아이콘 자원이 존재하면, 가장 적절한 크기가 사용됩니다. 17 이전 버전에서는 임의의 아이콘 자원을 운영체제가 선택해 주었고, 시스템 크기의 아이콘으로 확대되었다가, 다시 요청한 크기로 변경되었습니다.

자원 식별자

음수의 아이콘 번호를 사용하면 실행 파일 안에서 그룹 아이콘을 식별할 수 있습니다. 예를 들어, 다음은 트레이 아이콘을 ahk 파일이 사용할 기본 아이콘으로 설정합니다:

Menu, Tray, Icon, %A_AhkPath%, -160