-
오토핫키] 함수가 무엇인가 #1오토핫키 2022. 9. 20. 22:05
https://open.kakao.com/me/apsalman
https://www.youtube.com/channel/UC6hW-NrL9CxDQd2IzWbekYA
4월에 적었던 포스트의 수준이나 지식의 한계가 너무 쪽팔려서 9월 19일 다시 적는다.
함수란?
함수(Function) 는 소프트웨어에서 특정 동작을 수행하는 일정 코드 부분을 의미한다.
기본적으로 함수를 시각적으로 표현하면 이런 그림이 나온다.
매개변수(인자, parameter) 를 함수에 전송한다. << 이게 g라벨과 다른 이유이고 함수를 반드시 써야하는 이유이다.
함수는 본인에게 지정된 명령들을 수행한 후 지정된 것을 우리에게 반환한다.
함수의 기본
더하기(a, b) ;a 와 b가 인자로 들어가는 '더하기' 라는 함수 생성 { return a + b ;a + b 를 반환값으로 돌려줌 }
이 함수는 a 와 b 를 인자로 받아와 더한 후 결과를 반환한다.
' Msgbox, % 더하기(4, 6) ' 을 하면 10 이라는 결과를 돌려줄 것이다.
' a := 더하기(4, 2) ' 를 하면 a 라는 변수에 6 이라는 결과를 담아줄 것이다.
어떤가 여기까지는 이해가 되었는가?
함수의 활용
이제 우리는 함수를 활용해야 한다. 함수 활용을 잘 하는 방법과 잘 못하는 방법의 예시를 한번 보여주려고 한다.
내가 4월에 적은 포스팅에 쪽팔림을 느낀 이유이기도 하다.
하나의 동작을 함수로 묶어서 만들었다. 이것은 잘 못하는 방법이다. 차라리
이렇게 라벨로 지정한 후 ' GoSub, ERP엑셀다운 ' 이게 나을 것이다.
그렇다면 잘 쓴 함수의 예시는?
I(Key) { IniRead, var, Image Binary.ini, Apsalman Valid, % Key return var }
IniRead 로 Image Binary.ini 파일의 Apsalman Valid 라는 항목의 Key 값을 var 라는 변수에 담는다. 그 후 var 를 반환한다.
이걸 어디서 활용할 수 있을까?
ImageSearch, vx, vy, 0, 0, 1920, 1080, % I("3버튼") 이렇게 할 수 있다.
즉, 나는 Ini 파일에 각 항목마다 이진화된 이미지 리스트를 담아두고 필요할 때마다 I() 함수로 꺼내쓰는 것이다.
IniRead, var1, Image Binary.ini, Apsalman Valid, 3번버튼 IniRead, var2, Image Binary.ini, Apsalman Valid, 4번버튼 IniRead, var3, Image Binary.ini, Apsalman Valid, 다운클릭 IniRead, var4, Image Binary.ini, Apsalman Valid, 엑셀로받기
이거보단...
var1 := I("3번버튼"), var2 := I("4번버튼"), var3 := I("다운클릭"), var4 := I("엑셀로다운") I(Key) { IniRead, var, Image Binary.ini, Apsalman Valid, % Key return var }
이게 더 낫다는 것이다. (변수값 지정을 한줄로 해줬는데 이 부분은 나중에 다시 설명하겠지만 이게 더 빠르다.
우리가 오토핫키를 활용하게 된 가장 큰 이유인 ImageSearch 를 예시로 들어보면
Msgbox, % Img("test.bmp", 0, 0, A_ScreenWidth, A_ScreenHeight, 000000, 30) Img(ImageFile, x1, y1, x2, y2, Trans, Variation) { ImageSearch, vx, vy, % x1, % y1, % x2, % y2, % "*Trans" Trans " *" Variation " " ImageFile return Errorlevel }
이렇게 사용할 수도 있을 것이다. (Errorlevel 만 결과로 반환하므로 100% 좋은 방법은 아니다)
여기까지 함수의 기본적인 개념과 활용에 대해 알아보았다. 2편에서는 좀 더 심화내용을 알아보도록 하겠다.
2편
https://apsalman.tistory.com/65
'오토핫키' 카테고리의 다른 글
오토핫키] Scite4Autohotkey 콜팁, 툴팁 안뜨는 명령어 추가 (0) 2022.10.27 오토핫키] 함수가 무엇인가 #2 (0) 2022.09.21 오토핫키] 텔레그램 봇에게 보낸 메시지를 오토핫키 변수에 담기 (1) 2022.07.30 오토핫키] 텔레그램 봇 api 활용 휴대폰으로 알림 받기 (2) 2022.07.28 오토핫키] A_TickCount 활용하여 소요시간 확인 (0) 2022.07.16