목록분류 전체보기 (36)
LearningNote
이번엔 오랜만에 재미있는 것을 소개해드릴게요. 오토핫키에는 이미지를 찾는 명령어가 있습니다. 저장해놓은 이미지 파일이 화면상에 일치하거나 혹은 비슷한 부분이 있으면, 그것이 어느 좌표에 있는지 알 수 있습니다. 먼저, 간단 도움말부터 살펴보겠습니다. ImageSearch, OutputVarX, OutputVarY, X1, Y1, X2, Y2, ImageFile OutputVarX 와 OutputVarY 는 이제 좀 익숙해지셨나요? 결과값이 담아질 변수입니다. 이미지 서치 명령어에서는 이미지가 발견된 x 좌표와 y 좌표가 각각 담깁니다. X1, Y1, X2, Y2 는 각각, 이미지를 찾을 시작점과 끝점의 좌표를 뜻합니다. ImageFile 인자에는 이미지 파일명을 입력하시면 됩니다. 이때 주의하실 점이 있..
반복문과 조건문은 함께 다닐 때가 많습니다. 반복 중에 특정한 조건이 충족되면 그 루프를 빠져나가게끔 하는 거죠. 조건문에 대해 배울 때 숫자 맞히기 게임을 예로 들어 보겠습니다. 반복문을 배우지 않았을 때는, 응답을 하면 그 숫자가 맞았는지 틀렸는지 메시지를 띄운 다음, 곧바로 종료하게끔 코드를 작성했습니다. 반복문을 조합하면, 정답이 아닌 경우 계속에서 숫자를 입력할 수 있는 창을 띄워주고, 정답을 맞혔을 경우에만 반복문을 빠져나가 종료하도록 만들 수 있습니다. 그 예제를 해볼게요. 그전에, 먼저 루프를 빠져나가는 방법을 알아야겠죠. 그 명령어는 간단합니다. break [, LoopLabel] LoopLabel 은 생략이 가능하며, 사용할 일은 거의 없으니 모르셔도 무방합니다. LoopLabel 인자..
[오토핫키] 반복문(1) 프로그래밍의 꽃이라 할 수 있는 반복문을 배워보겠습니다. 사람에게 일을 시키면, 두세 번만 같은 일을 시켜도 짜증을 내기 마련이죠. 하지만 컴퓨터는 참 좋은게, 두세 번이 아니라 수천번 수만 번을 시켜도 짜증 내지 않고 잘 수행을 합니다. 이 점을 이용하면 많은 일을 쉽고 빠르고 편리하게 할 수 있습니다. 그래서 이 반복문은 프로그래밍의 꽃이라고 할 수 있습니다. 반복문은 여러 형태의 문법이 있습니다. 자주 쓰이고 쉬운 것을 위주로 다루어 보겠습니다. 어려운 것은 반복문이 어느 정도 익숙해지면 스스로 학습할 수 있는 힘이 길러질 거라고 생각하기 때문입니다. 먼저 Loop 라는 명령어입니다. Loop 다음에 콤마(,)를 찍어 간단 도움말을 먼저 살펴보시죠. Loop [, Count..
[오토핫키] 조건문(2) 조건문을 사용할 때, 초보자들이 가장 많이 헷갈려하는 부분에 대해 설명해드릴게요. if ~ if 와 if ~ else if 의 차이에 대해 알아보려고 합니다. 다음의 코드를 작성하고 각각 실행해보세요. !5:: a := 10 if (a > 1) { MsgBox, a 는 1 보다 큽니다. } else if (a > 5) { MsgBox, a 는 5 보다 큽니다. } return !6:: b := 10 if (b > 1) { MsgBox, b 는 1 보다 큽니다. } if (b > 5) { MsgBox, b 는 5 보다 큽니다. } return 차이점을 아시겠나요? 첫 번째 예제를 먼저 분석해보시죠. if 와 else if 는 크게 보면 하나의 묶음입니다. if 조건부가 참이라면 그..
[오토핫키] 조건문(1) 조건문은 프로그램을 매우 다채롭게(?) 해줍니다. 이런 상황에서는 이런 명령을 하고, 저런 상황에서는 저런 명령을 할 수 있게 해 주기 때문입니다. 조건문이 없다면 딱 정해진 상황에 대해서만 프로그램을 작동시킬 수 있을 것입니다. 조건문은 if 라는 명령어를 사용합니다. 우리말로 풀이한다면 '만약에'라는 뜻이죠. 먼저, 간단 도움말을 확인하기 위해, SciTE4AutoHotkey 에디터를 열고 if 를 입력한 후 한 칸 띄고 여는 괄호(()를 입력해보세요. if (Expression) { commands } else { commands } if 다음의 괄호 안에는 Expression 형태로 조건을 넣을 수 있으며, 그 연산 결과가 참이면 해당 블록의 명령을 실행합니다. else ..
[오토핫키] 메시지 박스(3) 메시지 박스에는 다양한 형태가 있었죠. 이렇게나 다양하게요. 이번 시간에는 이 메시지 박스를, SciTE4AutoHotkey 에디터가 제공해주는 툴로 간편하게 만드는 법에 대해 알아보겠습니다. 상단 툴바에 보면 MsgBox Creator 라는 아이콘이 있습니다. 바로 이 툴을 이용하면 아주 쉽게 다양한 메시지 박스를 만들어낼 수 있습니다. Title 에는 제목을 적고, Text 에는 본문 내용을 적고, 그 밖에도 Button 의 형태라든지 Icon 이라든지 기타 여러 가지의 옵션을 지정할 수 있습니다. 옵션을 바꿀 때마다 하단의 Result 영역에 명령어가 실시간으로 업데이트되는 것을 볼 수 있습니다. Insert in SciTE 버튼을 누르면, 해당 명령어가 SciTE4A..
[오토핫키] 메시지 박스(2) 전 시간에 메시지 박스의 다양한 형태에 대해 살펴보셨으면, 이제 그 다양한 형태의 메시지 박스를 어떻게 다룰 것인가에 대해 알아보도록 해요. 예를 들어, 메시지 박스의 버튼 Yes를 누를 때와 No를 누를 때, 각각 다른 명령어를 내리는 거죠. IfMsgBox 라는 명령어를 사용합니다. 오토핫키는 명령어가 대체로 직관적입니다. IfMsgBox 도 마찬가지입니다. '만약' + '메시지 박스'가 결합되어 있기 때문에 어떤 메시지 박스냐에 따라 뭔가를 결정할 때 쓴다고 예상이 됩니다. 간단 도움말을 살펴 보겠습니다. IfMsgBox, Yes|No|OK|Cancel|Abort|Ignore|Retry|Timeout 인자 하나를 쓸 수 있으며, 여러 가지 옵션 중 하나를 선택할 수 있..
[오토핫키] 메시지 박스(1) 메시지 박스 명령어는 전 시간에 여러 차례 다루었기 때문에 어느 정도 익숙하실 거라 생각합니다. 그래도 행여나 기억이 나지 않으실 수도 있으니, 힌트를 드릴게요. MsgBox, Hello World! 이제 생각나셨나요? 네, 좋습니다. 이번 시간에는 이 메시지 박스 명령어에 대해, 조금 더 넓고 깊게 알아보도록 할게요. MsgBox 명령어를 타이핑하고 콤마(,)를 누르면, 다음과 같은 간단 도움말이 나타납니다. MsgBox [, Options, Title, Text, Timeout] 으잉? 지금까지 써오던 거랑 뭔가 많이 다른데요? 간단 도움말에서는 저런 형태로 알려주고 있지만, 사실은 더 자주 쓰이는 문법은 첫 번째 인자에 단순히 Text를 입력하는 것으로 끝나죠. 따라서..
[오토핫키] 변수와 표현식(2) 표현식으로 변수를 어떻게 사용하는지 다양한 방법으로 실습해보겠습니다. 전에 배웠던 내용도 일부 포함되어 있으니 복습도 함께 해보세요. 바로 예제로 들어가겠습니다. 준비된 예제는 국어, 영어, 수학의 점수를 변수에 담아두고, 각 과목의 점수 및 총점과 평균을 메시지 박스에 출력하는 예제입니다. 다음의 코드를 작성해보세요. !3:: kor := 100 eng := 80 math := 90 tot := kor + eng + math avg := tot / 3 MsgBox, 국어 점수는 kor 입니다. ; (x) MsgBox, 국어 점수는 %kor% 입니다. ; (o) MsgBox, % "영어 점수는 " %eng% " 입니다." ; (x) MsgBox, % "영어 점수는 " en..
[오토핫키] 변수와 표현식(1) 변수란 무엇일까요? 앞 시간에 마우스 제어에 대해 배우면서 이미 은근슬쩍 언급하긴 했었네요. 사전적인 의미부터 바로 살펴보겠습니다. 어떤 관계나 범위 안에서 여러 가지 값으로 변할 수 있는 수 별 것 없어 보이네요. 간단하게 말씀드리면, '변할 수 있는 수' 가 변수입니다. 영어로는 Variable 이라고 합니다. 마우스 포인터의 위치를 담아두었던 인자가 있었죠. 그것이 변수입니다. 기억나시나요? 이런 명령어였죠. 기억이 잘 나지 않으실 수 있으니 간단히 한번 살펴볼게요. MouseGetPos [, OutputVarX, OutputVarY, OutputVarWin, OutputVarControl, 1|2|3] 이 명령어 줄에서 시작하는 인자들이 다 변수입니다. 어? 이렇게..