오토핫키 커뮤니티

조회 수 1680 추천 1 댓글 39


아래 예제는 두개의 버튼(YES와 NO)를 포함한 메세지 상자를 출력 합니다.:

1.<a href="/command.php?id=MsgBox">MsgBox</a>, 4, , 계속 하시겠습니까?
2.<a href="/command.php?id=IfMsgBox">IfMsgBox</a>, No
3.return
4.<span class="CodeCom">; 만약 사용자가 yes를 선택했다면</span>
5.MsgBox 당신은 YES를 선택 하셨습니다.

InputBox 명령어를 사용하면 사용자에게서 문자열을 입력 받을 수 있습니다. FileSelectFile이나 FileSelectFolder 명령어는 사용자에게 파일이나 폴더를 선택할 수 있도록 합니다. 참고로 Gui 명령어를 사용하면 임의의 입력 화면이나 유저 인터페이스를 구현 할 수 있습니다.

Tip: 이미 위의 보기를 통해 알았겠지만, 상황에 따라 콤마를 생략 할 수 있습니다. 예를 들면:

1.MsgBox 괜찮습니다.
2.MsgBox<strong>,</strong> 이것도 괜찮습니다. (콤마","를 넣었을 때)

변수 및 클립보드 사용하기

먼저, 모든 변수는 전역 변수이어서 스크립트 파일의 어디에서나 모든 변수를 읽거나 수정할 수 있다는 사실과 모든 변수가 문자형(다른 변수 타입은 존재 하지 않음)이라는 사실을 기억 합니다. 변수를 사용하기 위해 꼭 정의(혹은 선언)할 필요는 없습니다.

다음의 예제는 변수에 문자열을 대입하는 예제 입니다.

1.MyVar1 = 123
2.MyVar2 = my string
다음의 예제는 변수에 저장된 문자열을 다른 문자열과 비교 하는 예 입니다.
1.if MyVar2 = my string
2.{
3.MsgBox 변수 MyVar2에 "my string"이 들어 있습니다.
4.}
5.if MyVar1 >= 100
6.{
7.MsgBox 변수 MyVar1에 %MyVar1%, 이것은 숫자 100보다 큽니다.
8.}

위 예제에서 변수 MyVar1 이 두번째 나올때는 "%"에 쌓여있는 것을 보았을 것 입니다. 이것은 그 위치에 변수 MyVar1 의 값을 보여줄때 쓰입니다. 이런 방법으로 변수의 내용을 다른 것으로 복사하는 데 이용할 수 있습니다. 다음의 예를 봅니다.

1.MyVarConcatenated = %MyVar1% %MyVar2%

변수 MyVarConcatenated 에 "123 my string"이 대입 됩니다.

변수의 값을 서로 비교 할 때도 같은 방법을 사용 합니다.

1.if (ItemCount > ItemLimit)
2.{
3.MsgBox 변수 ItemCount에는, %ItemCount%가 들어있고, 이것은 %ItemLimit% 보다 큽니다.
4.}
ClipboardClipboard 라는 미리 정의된 변수에 항상 윈도우 클립보드의 텍스트 형식 데이터를 저장하고 있고, 이것은 다른 변수와 같은 방법으로 사용할 수 있습니다. 다음은 클립보드의 내용을 보여주는 예 입니다.

1.MsgBox %clipboard%

다음은 클립보드에 새로운 내용을 대입시키는 예 입니다.

1.clipboard = 새로운 행의 텍스트문자`r`n두번째 행의 텍스트문자`r`n

위의 예에서 'r 과 'n는 특별한 의미를 가진 문자열로 각각 케이지 리턴과 라인피드를 의미한다. 사용자가 Enter키를 누른 것 처럼 다음의 새로운 라인을 만들어 줍니다.

클립보드 (혹은 그외 변수)에 텍스트를 덧붙이려면 다음의 예를 참고 하십시오.

1.Clipboard %Clipboard% 그리고 덧붙이는 텍스트가 있습니다.

Clipboard 와 변수(Variables)에 대한 세부사항을 좀 더 자세하게 알아 볼 수 있다.

반복구문

연속적으로 2번이상의 무언가를 수행하기위해 반복구문(Loop)를 사용합니다. 다음은 MsgBox를 3번 실행하는 예제 입니다.

1.Loop 3
2.{
3.MsgBox 이 창을 3번 표시합니다.
4.}

반복구문(Loop) 다음에 변수를 명시할 수 있습니다. 하지만 이런 방식은 반복될 횟수가 들어있는 변수가 반복구문(Loop)안에서 결정되는 상태일때 유용합니다. 다음의 예를 봅시다.

1.Loop %RunCount%
2.{
3.Run C:\Check Server Status.exe
4.Sleep 60000  <span class="CodeCom">; 60초 동안 대기.</span>
5.}

위 반복구문(Loop)의 반복횟수(변수 RunCount에 숫자 대입)을 지정하지 않는 한, RunCount는 0이 되므로, 반복구문(Loop)를 생략하게 됩니다.

하나 이상의 조건으로 반복구문(Loop)를 종료할 수 있습니다. 다음의 예제는 사용자가 F1키를 누르고 있는 동안 마우스 좌클릭을 반복적으로 수행합니다.

01.$F1::  <span class="CodeCom">; 단축키 F1 ("$" 기호는 GetKeyState의 "P" 모드 참조).</span>
02.Loop  <span class="CodeCom">; 반복횟수가 지정되지 않았기 때문에 "break"나 "return"을 만나기 전까지는 무한반복 됩니다.</span>
03.{
04.if not GetKeyState("F1""P")  <span class="CodeCom">; If조건문의 조건이 참(True)이면 F1키는 눌려지지 않은 상태입니다.</span>
05.break  <span class="CodeCom">; 반복구문을 종료합니다.</span>
06.<span class="CodeCom">; 위에서 "break"가 실행되지 않았다면, 마우스를 좌클릭을 합니다.</span>
07.Click  <span class="CodeCom">; 현재 마우스 커서 위치에서 마우스 좌클릭을 합니다.</span>
08.}
09.return

위의 예제는 "while...do"문 이라고 불리는 기능과 동일합니다. "while...do"문은 특정한 조건이 맞았을때(while), 수행(does)되는 것을 반복하게 되는데, 마우스 좌클릭을 반복하는 것은 F1키가 눌려있을때(while) 수행 됩니다. F1키가 눌려지지 않았을때 반복구문은 이 조건을 찾아내고 break 명령어를 통해 반복을 멈추게 됩니다. break 명령어는 반복구문의 마지막 중괄호 닫기"}"가 있는 곳까지 건너뛰기를 하고 다음 행을 수행합니다.

위의 예제는 일반적인 반복구문(Loop)의 한 형태입니다. 보다 전문적인 반복구문을 수행하려면 아래의 명령어들을 참고하십시오.

File-reading/writing loop: 한번에 한줄씩 텍스트파일을 검색합니다. 행과 행(line-by-line)방식으로 파일을 수정하는데 이용할 수 있습니다. 또한, 특정 기준을 찾는데 이용할 수 있습니다.

Files and folders loop: 한번에 하나씩 파일이나 폴더를 검색합니다. 특정 파일이나 폴더를 찾는데 이용할 수 있습니다.

Parsing loop: 한번에 하나씩, 문자열에서 특정 문자열을 검색합니다. 문자열 "Red,Green,Blue"와 같은 3개의 단어로 구성된 문자열을 특정 문자열 ","을 기준으로 3개의 문자열로 나눌수 있습니다.

Registry loop: 한번에 하나씩 특정 레지스트리 subkey를 검색합니다.

파일과 폴더를 다루기

텍스트파일 마지막에 내용(예:하나의 문장을 추가합니다.)을 추가하려면, (혹은 새로 만들려면), FileAppend를 다음 보기처럼 사용 하십시오. 새로운 라인부터 시작하려면 `n (linefeed)를 사용 할 수 있습니다:

1.FileAppend, 하나의 문장을 추가합니다.`n, C:\My Documents\내문서.txt

파일을 덮어쓰기 하려면 명령어 FileAppend에 앞서 FileDelete를 사용해 삭제해야 합니다. 예를 들면:

1.FileDelete, C:\My Documents\내문서.txt

자주 쓰이는 파일과 폴더 관련 명령어들은 다음과 같습니다:





전체 최신 인기글

전체 주간 인기글