좌표가 자꾸 어긋날 때
매크로가 깨지는 가장 흔한 원인은 절대 좌표입니다.
만들 때는 완벽하게 돌던 것이, 창을 조금 옮기거나 모니터를 하나 더 달면 엉뚱한 곳을 누릅니다.
okmacro 에는 이 문제를 없애는 두 가지 방법이 있습니다 —
창 기준 좌표 와 마우스 위치 입니다.
상황 — 어제 자리에 그 버튼이 없습니다
ERP 창을 화면 왼쪽에 놓고 매크로를 만들었습니다.
저장 버튼은 화면 기준으로 (640, 440) 이었습니다.
오늘 그 창을 오른쪽으로 옮겼습니다. 매크로를 돌리면 (640, 440) 을 누르는데,
거기엔 이제 삭제 버튼이 있습니다.
노트북을 외부 모니터에 연결했을 때도 같은 일이 생깁니다. 모니터가 늘어나면 화면 좌표계 자체가 넓어지고, 창은 다른 자리에 열립니다. 해상도를 바꾸거나 디스플레이 배율을 125%로 올려도 마찬가지입니다.
이런 실패는 눈에 잘 띄지 않습니다. 매크로는 좌표를 눌렀으니 오류 없이 끝났다고 보고합니다. 무엇을 눌렀는지는 모릅니다.
왜 화면 기준 좌표가 깨지는가
화면 기준 좌표는 "화면 왼쪽 위에서 가로 640, 세로 440"이라는 뜻입니다. 사람이 보는 기준은 그게 아닙니다. 사람은 "저장 버튼" 을 누릅니다. 그 버튼이 화면 어디에 있는지는 신경 쓰지 않습니다.
즉 화면 기준 좌표는 사람이 실제로 쓰는 기준보다 한 단계 낮은 것을 저장합니다. 창 위치라는 변수가 사이에 하나 끼어 있는데, 그 변수를 기록하지 않은 셈입니다. 창이 움직이지 않는다는 조건이 맞을 때만 우연히 들어맞습니다.
해법은 둘 중 하나입니다. 창 위치를 실행할 때 다시 재는 것, 또는 누를 자리를 사람이 직접 정해 주는 것입니다.
해법 1 — 창 기준 좌표
마우스·색 대기 동작에서 창 기준 좌표로 저장 을 켜면, 좌표가 그 창 안의 상대 위치로 저장됩니다. 실행할 때 창을 찾아 현재 위치를 기준으로 다시 계산하므로, 창이 옮겨져도 같은 지점을 누릅니다.
화면 기준 (깨진다)
1 마우스 클릭 화면 (640, 440) 창을 옮기면 엉뚱한 곳
창 기준 (옮겨도 된다)
1 창 활성화 ERP - 거래처 등록
2 마우스 클릭 창 기준 (288, 196) ERP 창 왼쪽 위에서 잰 거리
- 좌표를 캡처합니다. 동작 추가 창에서 Ctrl+Alt+C 를 누르면 마우스 자리의 좌표와 색이 들어옵니다.
- 창 제목을 확인합니다. 캡처하면 커서 밑의 창을 자동으로 인식해 제목을 채워 줍니다. 목록에서 고르거나 직접 입력해도 됩니다.
- 맨 앞에 창 활성화를 둡니다. 창을 클릭해 앞으로 가져오지 않습니다. 창 활성화는 제목으로 찾아 전경으로 가져오고, 창이 아직 없으면 지정한 초까지 기다립니다.
기록(녹화)도 기본이 창 기준입니다. 따로 설정하지 않고 ● 기록으로 만든 매크로는 이미 창 기준으로 저장되어 있습니다 (설정 > 기록에서 끌 수 있습니다). 창 기준 좌표를 쓰면 대상 창을 다른 모니터로 옮겨도 그대로 동작합니다.
해법 2 — 마우스 위치
창 제목이 매번 바뀌거나(문서 이름이 제목에 들어가는 프로그램이 그렇습니다), 애초에 창이라고 부를 것이 없는 화면도 있습니다. 이럴 때는 좌표를 아예 쓰지 않는 방법이 있습니다.
마우스 동작의 X·Y 옆 마우스 위치 를 켜면 좌표를 무시하고
실행하는 순간 커서가 올려져 있는 곳을 누릅니다.
커서를 옮기지 않으므로, 마우스를 어딘가에 올려 둔 채 그 자리를 계속 누르게 할 수 있습니다.
동작 목록에는 마우스 (마우스 위치) 왼쪽 클릭 으로 보입니다.
누를 자리를 사람이 정하는 셈이라 창이 옮겨져도, 모니터가 달라져도 상관없습니다. 대신 돌리는 동안 커서를 그 자리에 두어야 하므로, 자리를 비우고 돌리는 작업에는 맞지 않습니다.
마우스 위치를 켜면 X·Y 와 창 기준 좌표 는 쓰이지 않으므로 잠깁니다.
좌표 캡처 키를 누르면 다시 좌표 방식으로 돌아옵니다.
어느 쪽을 쓸까
| 상황 | 쓸 것 |
|---|---|
| 창 제목이 일정한 업무 프로그램 | 창 기준 좌표 |
| 예약 실행 등 자리를 비우고 돌리는 매크로 | 창 기준 좌표 (마우스 위치는 쓸 수 없습니다) |
| 창 제목이 매번 바뀜 | 마우스 위치, 또는 이미지 찾기 |
| 같은 자리를 여러 번 눌러야 함 | 마우스 위치 + 반복 구간 |
| 버튼 자리가 그때그때 다름 | 이미지 찾기 |
버튼이나 키를 누르고 있는 동안만 빠르게 두드리고 싶은 것이라면 매크로가 아니라 연타 가 맞습니다. 툴바의 연타를 켜거나 Ctrl+Alt+3 을 누르면 바로 쓸 수 있고, 매크로를 만들 필요가 없습니다.
주의할 점
같은 제목의 창이 여러 개 열려 있으면 가장 앞에 있는 창을 씁니다. 엑셀 파일 두 개를 열어 둔 채 돌리면 의도한 쪽이 아닐 수 있으므로, 매크로를 돌리기 전에 대상 창만 남겨 두는 편이 안전합니다.
돌리기 전에 툴바의 점검 을 누르면 화면 밖 좌표를 미리 알려 줍니다. 보조 모니터 좌표를 화면 밖으로 잘못 경고하지 않으므로, 여기서 경고가 나오면 실제로 닿지 않는 자리입니다.
모니터마다 배율이 달라도 글자 크기는 맞춰집니다.
창을 100% 모니터와 200% 모니터 사이로 옮기면 그 모니터 배율에 맞춰 다시 그려지고,
상태줄에 화면 배율 200% 에 맞췄습니다 로 알려 줍니다.
모니터를 떼었다 붙이다 보면 프로그램 창 자체를 놓칠 때가 있습니다. 다음에 켤 때는 저절로 화면 안으로 돌아오고, 켜 둔 채로 놓쳤으면 도구 > 창을 화면 가운데로 를 쓰면 됩니다.
맞는지 확인할 때는 모의 실행을 켜고 돌립니다. 실제 입력을 보내지 않고 로그만 남기므로, 어느 좌표를 누르려 했는지 안전하게 볼 수 있습니다. 창을 일부러 옮겨 두고 한 번 더 돌려 보면 창 기준 좌표가 제대로 걸렸는지 확인됩니다.