목록오토핫키 (31)
LearningNote

컴파일이란? 컴파일이란, 사람이 작성한 프로그램 코드를 컴퓨터가 실행할 수 있는 형태로 번역하는 것을 말합니다. 컴파일러란? 컴파일러는, 사람이 작성한 프로그램 코드를 컴퓨터가 실행할 수 있는 형태로 번역해주는 프로그램입니다. 그렇다면 컴파일하는 이유는 무엇일까요? 프로그램 배포 시, 사용자 PC 에 오토핫키가 설치되어 있지 않아도 실행 가능하도록 하기 위함입니다. 개발하는 사람이야, 당연히 오토핫키를 설치해야 하지만, 사용자에게 오토핫키를 설치해야 하는 번거로움을 줄 필요는 없겠죠? 컴파일을 하면, 파일 확장자도 달라집니다. 스크립트 소스 파일은 *.ahk 인 반면에, 컴파일된 파일은 *.exe 가 됩니다. 그렇다면 컴파일을 직접 해보도록 합니다. 컴파일을 하려면 필수적으로 두 가지가 필요합니다. 첫 ..

함수를 실제로 어떻게 사용하는지, 왜 사용하는지에 대해 간단한 예를 들어 보겠습니다. 가장 최근에 배웠던 명령어인 ImageSearch 로 첫 번째 예제를 만들어 볼게요. 이미지 서치 시간에 작성했던 스크립트를 가져다가 조금만 바꾸겠습니다. 파일명만 적어주면, 이미지를 찾으면 클릭하고, 이미지를 찾지 못하거나, 기타 오류가 발생하면 메시지 박스를 출력하는 함수입니다. imgClick(file) { CoordMode, Pixel, Relative CoordMode, Mouse, Relative ImageSearch, vX, vY, 0, 0, A_ScreenWidth, A_ScreenHeight, *TransBlack *30 ./%file%.png if (ErrorLevel == 0) { Click, %vX..

우리는 이미 수학 시간에 함수에 대해 배웠습니다. 그 개념을 생각해보시면, 프로그래밍 언어에서의 함수도 이해하기 어렵지 않습니다. 수학에서 함수를 식으로 표현할 때 다음과 같이 적습니다. y = 2x ; y 는 입력값 x 에 2 를 곱하여 나온 값 y = 5x + 10 ; y 는 입력값 x 에 5 를 곱하고 10을 더하여 나온 값 y = -x ; y 는 입력값 x 에 -1 을 곱하여 나온 값 . . . . . . 또는 y 대신에 f(x) 라고도 표현합니다. f(x) = 2x ; f(x) 는 입력값 x 에 2 를 곱하여 나온 값 f(x) = 5x + 10 ; f(x) 는 입력값 x 에 5 를 곱하고 10을 더하여 나온 값 f(x) = -x ; f(x) 는 입력값 x 에 -1 을 곱하여 나온 값 . . . ..

이미지 서치에 대해 소개하면서, 컴퓨터마다, 그래픽 카드마다 이미지를 처리하는 방식이 다를 수 있으므로 이미지 서치는 안정적인 방식이 아니라고 말씀드렸습니다. 이점을 어느 정도는 보완할 수 있는 방법에 대해 알아보려고 합니다. ImageSearch 마지막 인자인 ImageFile 에는 여러 옵션을 지정할 수 있습니다. 그중에서 가장 많이 쓰이는 두 가지 정도만 다루어 볼 예정입니다. 첫 번째는 이미지 전처리이며, 두 번째는 오차 범위입니다. ImageSearch, OutputVarX, OutputVarY, X1, Y1, X2, Y2, *TransN *n ImageFile 문법에 유의하세요. 쉼표와 공백을 잘 구분하여 사용해야 합니다. *TransN 옵션을 사용하면 이미지 안에서 화면 안의 어느 컬러에도 ..

활성화된 창이 아니라 전체 화면에서 이미지를 찾는 방법을 실습해볼게요. 마찬가지로 윈도 그림판의 색상 편집기를 찾아 클릭하는 예제로 해보겠습니다. 여러분은 CoordMode 를 배웠었어요. 물론, 기억은 나지 않으시겠지만요. 그러나 좋습니다. 복습의 기회가 왔으니까요. CoordMode, ToolTip|Pixel|Mouse|Caret|Menu [, Screen|Relative|Window|Client] 지난번에 배웠던 활성화된 창에서의 이미지 서치는 Relative 좌표계를 사용했습니다. 좌표계를 지정하지 않으면 Relative 가 기본적으로 설정되기 때문입니다. 이번에 할 전체 화면에서의 이미지 서치는 Screen 좌표계를 씁니다. Screen 좌표계에서 이미지 서치를 위해서는, CoordMode 의 ..

이번엔 오랜만에 재미있는 것을 소개해드릴게요. 오토핫키에는 이미지를 찾는 명령어가 있습니다. 저장해놓은 이미지 파일이 화면상에 일치하거나 혹은 비슷한 부분이 있으면, 그것이 어느 좌표에 있는지 알 수 있습니다. 먼저, 간단 도움말부터 살펴보겠습니다. 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 ..