AutoIt Example2013. 12. 28. 01:03

오토잇이 3.3.10.0으로 업데이트 되었습니다.


개인적으로 Autoit이 크게 변했다고 생각할 때는

오토잇 홈페이지의 웹 도움말이 변경된 경우인데, 이번에 웹 도움말이 변경이 되었습니다.

카페도 접근제한 걸렸고 (실명인증을 하지 않아서요)

그래서, 카페에 올릴글을 블로그에 써 봅니다.


일단,

다운로드

Latest version: v3.3.10.0

Updated: 23rd December, 2013

History: View changelog

아직 SciTe가 업데이트 되지 않아서 "AutoIt- Self Extracting Archive"를 다운받아 압축풀고 테스트를 해 보시면 됩니다.


좀 달라지고 편해지는 부분이 생겼는데요.

저도 autoit 전체를 다 쓰는 부분이 아니라, 제가 자주 쓰는 부분 쪽에서 몇가지 설명을 달아 봅니다.

Added: Array access on expression: StringSplit("a,b", ",")[1]


Array를 반환받은 받아서 n번째 항목을 얻게 위해서는 아래와 같이 작성을 해야 합니다.

헛. _ArrayDisplay가 변경되었습니다.


$a = StringSplit("a,b", ",")
$a = $a[1]

ConsoleWrite($a & @LF)

변경후에는 아래와 같이 단순하게 작성할 수 있습니다.

$a = StringSplit("a,b", ",")[1]
ConsoleWrite($a & @LF)

그 외에도

;StringRegExp에서도 먹힌다.
$a = StringRegExp("a,b", "(\w+)", 3)[0]
ConsoleWrite($a & @LF)

;첫번째 실행파일.
Local
$aFiles
$aFiles = _FileListToArray(@WindowsDir, '*.exe', 1)
ConsoleWrite($aFiles[1] & @LF)

ConsoleWrite(_FileListToArray(@WindowsDir, '*.exe', 1)[1] & @LF)

이런 방식의 사용이 가능해 집니다.


Added: C++ style ternary operators: Local $fResult = ("foo" = "bar") ? True : False

ternary operators [google]

이번에 추가된 연산자 입니다.

쉽게 설명하자면

Local $var

If 100 > 20 Then
    $var = '크다'
Else
    $var = '작다'
EndIf
ConsoleWrite($var & @LF)

위 와 같은 소스를

아래와 같이 표현이 가능해 집니다. (IF문을 간락히 했다고 생각하시고 사용하면 될 듯 합니다 !)

Local $var
$var = ("100 > 20") ? '크다' : '작다'
ConsoleWrite($var & @LF)

전공공부 하는게 아니니 이정도면 충분할 것 입니다.


Changed: ShellExecute() will return the process ID.

기본의 ShellExecute 함수에서는 실행여부만을 반환했었는데,

Run 함수와 마찬가지로 "process ID"를 반환해 줍니다.


Added: ByRef with Call() function.

ByRef를 Call 함수에서도 사용이 가능해 졌습니다.

아래 소스를 각 버젼에서 실행 해 보시면 쉽게 이해 가능합니다.

Local $var_func, $var_call
$var_func = 'A'
$var_call = 'A'
function($var_func)
Call('function', $var_call)

MsgBox(0, 'Autoit v' & @AutoItVersion, 'Func' & @TAB & $var_func & @LF & 'Call' & @TAB & $var_call)


Func function(ByRef $c)
    $c = 'Change'
EndFunc


 

그림 처럼 v.3.3.8.1에서는 Call 함수로 호출된 function 함수에선 ByRef가 적용이 되지 않아서 $var_call 변수는 원래값 그래로 "A" 라는 값이 됩니다. 이것을 함수를 사용했을대 처럼 바뀌었다는 의미입니다.

Call이 함수를 호출 할 수 있다는 점에서, 더 잘된 것이지요.

이것이 안되었을 때엔 Call로 호출할 임시 함수를 만들어서 다시 원래 함수를 호출하는 2중 작업을 했었는데

이번에 업데이트 외면서 그런 귀찮은 작업을 하지 않아도되는 것이지요.


그 외에도

ProcessWaitClose의 CPU점유율을 줄였다는 것도 보이고,

Windows 2000 지원이 끝났다는 것도 보이고 그러네요..

찬찬이 더 봐야 할 듯합니다.




'AutoIt Example' 카테고리의 다른 글

SoundPlay 함수이용 mp3재생기 만들기  (0) 2011.02.14
파일명 변경하기  (1) 2008.12.25
한글의 변환  (2) 2008.10.25
Autoit으로 트레이 런쳐 만들어 보기..  (11) 2008.06.16
[예제] @GUI_DRAGFILE  (0) 2008.01.23
Posted by 빈마음