⚠ 이 강좌는 오토핫키 v1을 다룹니다
지금 보시는 강좌는 구버전 오토핫키(v1.1)를 다루고 있습니다. 따라서 본 강좌의 내용은 현재 최신 오토핫키 버전 (v2.0)과 호환되지 않습니다. 구버전의 정보가 필요한 것이 아니라면, 가능한 한 새로운 사이트에 작성한 v2 강좌(https://ahkv2.pnal.dev)를 봐주시길 바랍니다.
지금부터 41강까지 비활성 관련 명령어들을 배울겁니다. 비활성 명령어들은 활성화 되지 않은 창에 키 입력을 보내는 등의 동작을 하는 명령어입니다.
오늘은 비활성 관련 명령어들을 배우기 전에 ClassNN과 WinTitle 개념을 먼저 배우겠습니다.
위치를 표현해주는 ClassNN과 WinTitle
비활성 명령어를 잘 사용하기 위해선 ClassNN과 WinTitle이 무엇인지 알아야합니다.
이 둘은 컴퓨터에서 좌표를 사용하지 않고 "정확히 한 지점"을 선택하는 하나의 기준이됩니다.
우리의 위치를 특정하려면, "도" "시" "구" "동" "번지 수" 등이 필요한 것처럼 말이지요.
우선, 아래와 같은 임의의 프로그램이 있다고 가정합니다.
1. WinTitle
WinTitle은 보통 상단 타이틀바에 적혀있습니다. 프로그램을 구분할 수 있게합니다. 위 사진에선 Option이네요.
오토핫키에선 이 WinTitle을 이용해서 프로그램을 구분하게 되는 경우가 많습니다.
2. ClassNN
프로그램만 가리켜도 되지만, 프로그램 내에서 더 자세한 위치를 알고싶다면 프로그램 내 요소를 가리킬 수 있습니다.
위 사진의 창을 이루는 요소가 한 가지가 아닙니다. 체크 박스도 보이고, 글씨도 보이고, 버튼도 보이네요.
이들을 구분하려면 ClassNN을 알아야합니다.
이러한 창을 이루는 요소들 하나하나를 Control(컨트롤)이라고 부릅니다. 아래 그림에서 붉게 표시해두었습니다.
그런데, 동일한 컨트롤이 많습니다. 제가 봤을땐 Button 컨트롤은 7개, CheckBox컨트롤은 3개가 보이네요.
정확한 위치를 알려주기 위해서 각 컨트롤끼리는 겹치지 않는 고유한 이름을 가지고 있습니다.
컨트롤에게 주어진 이름을 ClassNN이라고 합니다. 컨트롤은 여러개를 쓸 수 있지만, 보통 ClassNN은 겹치지 않습니다.
이런 ClassNN은 한 프로그램 안에서 어떤 부분을 가르키는지 알려줄 수 있는 지표가 됩니다. "Chk3을 클릭해줘" "Edit2에 글씨를 써줘" 같은 식으로 명령할 수 있습니다.
언급했던 ClassNN과 WindowTitle은 지금까지 쭉 써왔던 Window Spy를 이용하여 알아낼 수 있습니다.
같은 창에선 ClassNN이 겹칠 수 없지만, 다른 창이라면 가능합니다. 서울 사는 철수와 부산 사는 철수는 이름은 같지만 지역이 다르기에 특정이 됩니다.
만약 둘 다 서울에 산다면, "서울 사는 철수"라고 했을 때 누군지 모르겠지요.
프로그램도 마찬가지입니다. ClassNN을 특정하려면 우선 WinTitle을 알아야합니다.
어떤 프로그램에 명령을 내리기 위해서 ClassNN은 생략이 가능하지만 WinTitle은 생략이 불가능하다는 이야기를 말씀드리고 싶었습니다. 물론, WinTitle만 가지고는 세부적인 위치를 알기 힘듭니다.
이번 강은 이정도만 알아두고, 다음 강은 본격적으로 비활성 명령어를 배웁니다.
< 36. 지나쳤던 것들 | 37. ClassNN과 WinTitle | 38. ControlSend >