반응형
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. 8. 13. 14:06
반응형

함수를 실제로 어떻게 사용하는지, 왜 사용하는지에 대해 간단한 예를 들어 보겠습니다.

 

가장 최근에 배웠던 명령어인 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%, %vY%, 1
	}
	else if (ErrorLevel == 1)
	{
		MsgBox, 이미지를 찾지 못했습니다.
	}
	else if (ErrorLevel == 2)
	{
		MsgBox, 오류가 발생하여 이미지 서치를 수행하지 못했습니다. 이미지 파일의 경로를 확인해주세요.
	}
	return
}

 

이 함수를 사용하지 않는다면,

이미지를 찾을 때마다 저 긴 코드를 반복해서 작성해야 합니다.

 

하지만, 함수를 쓴다면,

imgClick("파일명") 만 적으면 되죠.

 

이미지 파일 2개를 준비해서 실습해보아요.

 

첫 번째 이미지 파일은 이미지 서치 시간에 사용했던 것을 그대로 가져다 쓰겠습니다.

두 번째 이미지 파일은 윈도 그림판에서 Size 아이콘을 새로 캡처해서 png 파일로 생성하세요.

 

image1.png
image2.png

 

Alt + 3 을 누르면 1번 이미지가 클릭되고,

Alt + 4 를 누르면 2번 이미지가 클릭됩니다.

 

지금 바로 실행해보세요.

 

CoordMode 가 Relative 로 되어 있으므로,

그림판이 활성화된 상태에서 실행해야 클릭이 됩니다.

그렇지 않으면 이미지를 찾지 못했다는 메시지가 출력될 것입니다.

 

!3::
imgClick("image1")
return


!4::
imgClick("image2")
return

 

함수를 이용한 이미지 클릭

 

함수를 쓰지 않고,

image1 과 image2 를 각각 클릭하는 스크립트를 작성해보세요.

직접 해보시면, 왜 함수를 써야 하는지 몸소 알게 되실 겁니다.

 

함수 전체 소스를 참고하여

복습해보세요.

 

#SingleInstance, Force


F4::
ExitApp


f(x)
{
	y := 2 * x
	return y
}


!1::
MsgBox, % f(2)
return


!2::
y := f(3)
MsgBox, % y
return


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%, %vY%, 1
	}
	else if (ErrorLevel == 1)
	{
		MsgBox, 이미지를 찾지 못했습니다.
	}
	else if (ErrorLevel == 2)
	{
		MsgBox, 오류가 발생하여 이미지 서치를 수행하지 못했습니다. 이미지 파일의 경로를 확인해주세요.
	}
	return
}


!3::
imgClick("image1")
return


!4::
imgClick("image2")
return

 

반응형

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

[오토핫키] 컴파일 및 프로그램 배포  (0) 2021.01.03
[오토핫키] 함수(1)  (0) 2020.07.24
[오토핫키] 이미지 서치(3)  (0) 2020.07.21
[오토핫키] 이미지 서치(2)  (0) 2020.07.20
[오토핫키] 이미지 서치(1)  (0) 2020.07.16
Comments