반응형
Notice
Recent Posts
Recent Comments
Link
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Tags
more
Archives
Today
Total
관리 메뉴

LearningNote

[오토핫키] 이미지 서치(2) 본문

오토핫키

[오토핫키] 이미지 서치(2)

LN 2020. 7. 20. 11:54
반응형

활성화된 창이 아니라 전체 화면에서 이미지를 찾는 방법을 실습해볼게요.

마찬가지로 윈도 그림판의 색상 편집기를 찾아 클릭하는 예제로 해보겠습니다.

 

ImageSearch

 

여러분은 CoordMode 를 배웠었어요.

물론, 기억은 나지 않으시겠지만요.

그러나 좋습니다. 복습의 기회가 왔으니까요.

 

CoordMode, ToolTip|Pixel|Mouse|Caret|Menu [, Screen|Relative|Window|Client]

 

지난번에 배웠던 활성화된 창에서의 이미지 서치는

Relative 좌표계를 사용했습니다.

좌표계를 지정하지 않으면 Relative 가 기본적으로 설정되기 때문입니다.

 

이번에 할 전체 화면에서의 이미지 서치는 Screen 좌표계를 씁니다.

 

Screen 좌표계에서 이미지 서치를 위해서는,

CoordMode 의

첫 번째 인자에 Pixel 을 입력하고

두 번째 인자에 Screen 을 입력합니다.

 

그리고 Screen 좌표계에서 마우스 클릭을 위해서는,

CoordMode 의

첫 번째 인자에 Mouse 를 입력하고

두 번째 인자에 Screen 을 입력합니다.

 

좌표계 설정이 끝났으면,

본격적으로 이미지 서치를 해야겠죠.

 

ImageSearch, OutputVarX, OutputVarY, X1, Y1, X2, Y2, ImageFile

 

앞에서 했던 것과 똑같이 하면,

재미도 없고 배울 것도 없으니

양념 하나를 살짝 넣어볼게요.

 

한번 생각해보세요.

스크린의 크기는 컴퓨터 환경마다 다릅니다.

 

어떤 PC 에서는 1280x768 해상도를 쓰고,

어떤 PC 에서는 1600x1200 해상도를 씁니다.

 

이때마다 이미지 서치의 범위를 수정해야 하면

여간 귀찮은 게 아니겠죠.

 

그래서 우리에게 필요한 것은

스크린의 사이즈가 담겨 있는 내장 변수입니다.

 

스크린의 가로 크기는 A_ScreenWidth 변수에 담겨 있고,

세로 크기는 A_ScreenHeight 변수에 담겨 있습니다.

 

이 내장 변수를 모른다면

PC 환경이 바뀔 때마다 코드를 수정해야 하거나,

스크린 사이즈를 구하는 코드를 어떻게든 작성해야 했을 거예요.

 

이런 이유로, 내장 변수에는 어떤 것들이 있는지

슥~ 한번 훑어보실 것을 추천드립니다.

내장 변수에 어떤 것들이 있는지는

'변수' 관련 페이지를 복습하시기 바랍니다.

 

그렇다면 이 스크린 사이즈에 대한 내장 변수를 적용한다면

다음과 같은 코드가 완성됩니다.

 

!2::
CoordMode, Pixel, Screen
CoordMode, Mouse, Screen

ImageSearch, vX, vY, 0, 0, A_ScreenWidth, A_ScreenHeight, ./image1.png
Click, %vX%, %vY%, 1
return

 

모두 작성하셨다면

실행해보세요.

 

그리고 윈도 그림판 창을 이동해가며,

Alt + 2 키를 눌러보세요.

 

색상 편집기 창이 잘 뜨나요?

 

그림판이 활성화되지 않은,

그러니까 비활성화된 상태에서도

Alt + 2 키를 눌러보세요.

 

네, 해보시라고 말씀드린 데에는 이유가 있었습니다.

색상 편집기가 바로 뜨지 않네요.

 

비활성화 상태에서 색상 편집기 아이콘을 클릭하면

창만 활성화된다는 사실을 알게 되었습니다.

 

이럴 때에는,

클릭하기 전에 그림판 창을 활성화하는 코드를 넣어야 합니다.

그런데 우리는 아직 창을 다루는 방법에 대해 배우지 않았기 때문에

클릭을 두 번하는 형태로 코드를 바꾸어 실행하도록 하지요.

 

!2::
CoordMode, Pixel, Screen
CoordMode, Mouse, Screen

ImageSearch, vX, vY, 0, 0, A_ScreenWidth, A_ScreenHeight, ./image1.png
Click, %vX%, %vY%, 2
return

 

ImageSearch

 

반응형

'오토핫키' 카테고리의 다른 글

[오토핫키] 함수(1)  (0) 2020.07.24
[오토핫키] 이미지 서치(3)  (0) 2020.07.21
[오토핫키] 이미지 서치(1)  (0) 2020.07.16
[오토핫키] 반복문(2)  (0) 2020.07.13
[오토핫키] 반복문(1)  (0) 2020.07.10
Comments