오토 핫키 비활성 이미지 서치 | 오토핫키 Findtext 비활성 이미지서치 설명 – 응용편 2 69 개의 자세한 답변

당신은 주제를 찾고 있습니까 “오토 핫키 비활성 이미지 서치 – 오토핫키 FindText 비활성 이미지서치 설명 – 응용편 2“? 다음 카테고리의 웹사이트 th.taphoamini.com 에서 귀하의 모든 질문에 답변해 드립니다: https://th.taphoamini.com/wiki. 바로 아래에서 답을 찾을 수 있습니다. 작성자 압살맨의 오토핫키 이(가) 작성한 기사에는 조회수 496회 및 좋아요 10개 개의 좋아요가 있습니다.

Table of Contents

오토 핫키 비활성 이미지 서치 주제에 대한 동영상 보기

여기에서 이 주제에 대한 비디오를 시청하십시오. 주의 깊게 살펴보고 읽고 있는 내용에 대한 피드백을 제공하세요!

d여기에서 오토핫키 FindText 비활성 이미지서치 설명 – 응용편 2 – 오토 핫키 비활성 이미지 서치 주제에 대한 세부정보를 참조하세요

오토핫키 FindText 를 활용한 비활성 이미지서치 설명입니다.

오토 핫키 비활성 이미지 서치 주제에 대한 자세한 내용은 여기를 참조하세요.

[프날 오토핫키] GDI+ (gdip) #7: 비활성 이미지서치

본 강좌는 오토핫키로 GDI+를 이용하여 이미지서치를 하는 것을 목표로 합니다. 내장 명령어인 ImageSearch 명령어를 찾으신다면 좌측 메뉴에서 강좌 본편을 참고 …

+ 더 읽기

Source: pnal.kr

Date Published: 5/27/2021

View: 9633

#Chapter.12 ,오토핫키 비활성 이미지 서치(Gdip … – 연희동

비활성 이미지를 서치 하려면 라이브러리를 등록을 해야합니다. 오토핫키 공식 홈페이지에서 공유되는 라이브러리 입니다. 사이트 접속하셔서 드래그래서 …

+ 더 읽기

Source: huidongstory.tistory.com

Date Published: 4/13/2022

View: 6781

[오토핫키] 비활성 이미지 서치 후 클릭 – 네트워커의 보안 티스토리

[오토핫키] 비활성 이미지 서치 후 클릭. 징쟝 2018. 4. 19. 10:45. 출처: http://huongstory.tistory.com/13?category=723475. 윈도우 10 기준임.

+ 더 읽기

Source: nevercmecry.tistory.com

Date Published: 2/2/2022

View: 1635

오토핫키 비활성이미지서치 예제로 보는 강좌

이번에는 오토핫키로 녹스 앱플레이어 안의 이미지를 비활성으로 찾아보려고해요. 녹스는 무조건 그래픽 모드를 스피드 모드로 설정을 하셔야 비활성 이미지서치가 먹히 …

+ 여기에 더 보기

Source: automaticgame.tistory.com

Date Published: 6/21/2021

View: 3671

오토핫키 비활성 이미지서치와 비활성클릭 라이브러리 – 짜근햄

캡쳐받고 이미지편집하고 글쓰고 하려니 너무 힘든것 같습니다. 오토핫키를 조금이라도 아시는분들은 잘 살펴보시면 충분히 분석될수 있는 라이브러리 …

+ 여기에 더 보기

Source: zzageun.tistory.com

Date Published: 11/21/2022

View: 3853

에디터 1부 – 오토핫키 매크로에서 비활성 이미지 서치 후 찾은 …

이 글을 작성하기 위해 미리 오토핫키로 이것 저것 테스트를 해보았습니다. 비활성 이미지 서치와 비활성 마우스 클릭, 비활성 키보드 입력등등.

+ 자세한 내용은 여기를 클릭하십시오

Source: ngmsoftware.com

Date Published: 8/26/2021

View: 2086

오토핫키 ImageSearch 를 대신할 FindText – 압살맨

FindText 를 활용한 비활성 이미지서치 간단 설명. FindText 출처 : https://www.autohotkey.com/boards/viewtopic.php?f=6&t=17834.

+ 여기에 보기

Source: apsalman.tistory.com

Date Published: 8/5/2021

View: 6645

GDIP 비활성 이미지서치 질문드립니다 – 테일스타

비활성 GDIP 이미지 서치로 넣으면 아무런 반응이 없습니다ㅠ. 스크립트는 잘못된게 없는거 같은데 처음부터 막혀버리니 ㅠㅠ답답하네요. 오토핫키는 …

+ 더 읽기

Source: tailstar.net

Date Published: 11/28/2022

View: 9281

게임 비활성 이미지서치 – AutoHotKey를 사용하는 사람들

분명히 내문서에선 되는데 그 프로그램에서 하면 이미지서치 Pos:=(VY*65536)+VX 를 하든 Pos:=VX|VY<<16 를하든 값은 똑같이 나오긴하는데 PostMessage, ...

+ 여기에 표시

Source: www.autohotkey.co.kr

Date Published: 1/26/2021

View: 5988

주제와 관련된 이미지 오토 핫키 비활성 이미지 서치

주제와 관련된 더 많은 사진을 참조하십시오 오토핫키 FindText 비활성 이미지서치 설명 – 응용편 2. 댓글에서 더 많은 관련 이미지를 보거나 필요한 경우 더 많은 관련 기사를 볼 수 있습니다.

오토핫키 FindText 비활성 이미지서치 설명 - 응용편 2
오토핫키 FindText 비활성 이미지서치 설명 – 응용편 2

주제에 대한 기사 평가 오토 핫키 비활성 이미지 서치

  • Author: 압살맨의 오토핫키
  • Views: 조회수 496회
  • Likes: 좋아요 10개
  • Date Published: 2022. 6. 7.
  • Video Url link: https://www.youtube.com/watch?v=cpiqnTkFXlI

[프날 오토핫키] GDI+ (gdip) #7: 비활성 이미지서치

* 본 강좌는 오토핫키로 GDI+를 이용하여 이미지서치를 하는 것을 목표로 합니다. 내장 명령어인 ImageSearch 명령어를 찾으신다면 좌측 메뉴에서 강좌 본편을 참고해주세요.

* 본 강좌에서 설명하는 이미지서치 방법은 Haystack(추후 설명)이 될 창이 최소화 되어있지 않다는 것을 가정합니다.

* 기존 gdip 강좌를 모두 숙지하고 완벽히 다루실 수 있다는 가정 하에 진행되는 강좌입니다. 지난 강좌는 이 글의 최하단부에 목록으로 정리해두었습니다.

* 최근 이 글로 ‘프날 오토핫키 강좌’를 접하는 분들이 많습니다. 본 강좌는 본편 강좌가 따로 구성되어있으며, 해당 본편 강좌를 모두 배우신 후 보셔야 개념이 헷갈리지 않습니다. 또한, 본편의 서론에도 언급했듯이 이 강좌는 게임 매크로 강좌가 아닙니다! 오토핫키는 게임 매크로 만드는 툴이 아니며, 악용되어서도 안됩니다.

gdip을 이용한 이미지서치

사실 저는 비활성 이미지서치라는 용어를 좋아하지 않습니다. 비활성 창에 대한 이미지서치는 내장 명령어(ImageSearch)에서 Coordmode를 지정해주는 것만으로도 가능하기 때문입니다. 가려진 창은 인식이 되지 않지만, 절대좌표로 할 경우 “비활성 상태의 창”에서도 이미지서치가 되긴 됩니다.

다만 GDI+를 이용하면 가려진 창의 비트맵을 가져올 수 있고, 이를 이용하면 보이지 않는 부분 또한 이미지서치가 가능합니다. 아마 이 점이 국내 오토핫키 사용자층에게 gdip을 이용한 이미지서치가 ‘비활성 이미지서치’라는 이름으로 정착된 것에 한 몫을 한 것 같습니다. 해외 포럼에서 관련 글을 찾을 땐 gdip ImageSearch라는 키워드로 검색하셔야합니다.

이번 강좌에서는 이 gdip를 이용한 이미지서치를 가리키는 말로 “gdip 이미지서치”라는 용어를 사용하도록 하겠습니다. 다만 강좌의 제목은 대중적인 용어인 ‘비활성 이미지서치’를 사용했습니다.

Gdip_ImageSearch 라이브러리

gdip을 이용해서 이미지서치를 구현해놓은 라이브러리가 별도로 있습니다. 이번 강좌에서는 이 라이브러리를 사용합니다. 우리가 직접 로직을 구현하기엔 너무 복잡하고 어려운 과정이 되기 때문입니다.

라이브러리 원문은 (여기)서 확인 하실 수 있으며, 직접 전체를 복사하여 Gdip_ImageSearch.ahk라는 이름으로 저장해주시거나 아래 파일을 다운로드하셔서 보관해주시면 준비 끝입니다.

Gdip_ImageSearch.ahk 0.03MB

전체 과정

이번 강좌는 gdip의 기초적인 함수들을 배웠던 지난 강좌들과 달리, 응용적인 과정을 배우게 됩니다. 그렇기 때문에 한번 전체적인 gdip 이미지서치 과정을 짚어보려합니다.

1. Gdip와 Gdip_ImageSearch 라이브러리를 임포트합니다.

2. 이미지 서치를 할 범위의 비트맵과, 찾을 이미지의 비트맵을 가져옵니다.

3. Gdip_ImageSearch()라이브러리를 이용하여 이미지서치를 수행합니다.

지난 강까지 배웠던 내용들로 충분히 가능하니, 잘 따라와주세요.

준비하기

기존에 gdip 라이브러리만 임포트 했었는데, 같은 방법으로 Gdip_ImageSearch를 임포트합니다.

그 후, 원래 gdip의 함수를 사용할 때처럼 초기화(Initialize)와 정리(Clean up)함수를 써주고 시작하겠습니다.

스크립트 종료문(Exitapp) 또한 써주겠습니다.

이 과정은 이해 되시죠? 지난 강좌동안 이 과정은 빠지지 않고 사용했었으니까요. 따로 복잡한 설명은 하지 않겠습니다.

#include Gdip_All.ahk

#include Gdip_ImageSearch.ahk

pToken := Gdip_StartUp()

; 이 곳에서 gdip 이미지서치를 수행할 예정입니다.

Gdip_Shutdown(pToken)

Exitapp

Haystack과 Needle준비

이 개념을 드디어 설명하네요. 서양에서는 “a needle in a haystack”라는 말이 있습니다. 직역하면 ‘건초더미 안 바늘’정도이고요, 한국에는 ‘서울에서 김서방 찾기’ 정도가 있습니다. 갑자기 이 말을 왜 설명드리냐면, 프로그래밍에서 “어떤 전체적인 것에서 작은 것을 찾는” 과정을 설명할 때 주로 Haystack(건초더미;전체적인 것)과 Needle(바늘;작은 것)을 사용하기 때문입니다.

Gdip_ImageSearch함수도 이 Haystack과 Needle개념을 사용합니다.

Haystack: 이미지를 찾을 영역의 비트맵

이미지를 찾을 영역의 비트맵 Needle: 찾을 이미지의 비트맵

Haystack은 Gdip_BitmapFromHWND() 함수를 이용하여 특정 창의 비트맵을 가져오고

Needle은 Gdip_CreateBitmapFromFile() 함수를 이용하여 이미지 파일을 비트맵으로 가져오시면 됩니다.

모두 지난 시간 동안 배웠던 함수입니다.

그러면 Haystack에서 Needle을 찾는, 즉 특정 창 안에서 이미지를 찾을 수 있는 것이지요. 물론, 그 ‘특정 창’은 다른 창에 의해 가려져 있어도 됩니다. (일부 창은 비트맵을 가져올 수 없으니 참고해주세요.)

#include Gdip_All.ahk

#include Gdip_ImageSearch.ahk

pToken := Gdip_StartUp()

pHaystack := Gdip_BitmapFromHWND( WinExist ( “제목 없음 – 그림판” ))

pNeedle := Gdip_CreateBitmapFromFile( “pencil.png” )

Gdip_Shutdown(pToken)

Exitapp

위와 같이 Haystack과 Needle을 가져와주었습니다.

저는 그림판에서 연필 아이콘을 찾기 위해 위와 같이 써주었습니다. Needle은 찾을 이미지의 비트맵이기에, Gdip_CreateBitmapFromFile()을 이용하여 가져와주려면 우선 이미지 파일로 저장되어있어야 합니다. 캡처를 재량껏 하셔서 저장해두시면 되겠습니다. (제가 만든 캡처 프로그램을 써보셔도 좋습니다.. ^^ (바로가기))

Haystack으로 쓸 비트맵입니다. (1/2배로 축소) Needle로 쓸 비트맵입니다. (5배 확대)

Gdip_ImageSearch()

이제, 준비한 Haystack과 Needle로 이미지서치를 수행해볼 것입니다. 이 과정에선 Gdip_ImageSearch()함수를 이용하는데, 매개변수는 아래와 같습니다. (원문을 조금 수정했습니다.)

Gdip_ImageSearch(pHaystack, pNeedle, OutputList [, x1, y1, x2, y2, Variation, Trans, SearchDirection, Instances, LineDelim, CoordDelim])

매개변수가 너무 많습니다. 우리는 주로 쓰는 Variation 정도까지만 알아보겠습니다.

Gdip_ImageSearch(pHaystack, pNeedle, OutputList [, x1, y1, x2, y2, Variation])

pHaystack: Haystack의 메모리 주소입니다.

Haystack의 메모리 주소입니다. pNeedle: Needle의 메모리 주소입니다.

Needle의 메모리 주소입니다. OutputList: 출력 변수입니다. 찾은 이미지의 X, Y 좌표가 들어갑니다.

출력 변수입니다. 찾은 이미지의 X, Y 좌표가 들어갑니다. x1, y1, x2, y2: 이미지서치 영역입니다. 생략하거나 0으로 채울 시 Haystack 전체에서 찾습니다.

이미지서치 영역입니다. 생략하거나 0으로 채울 시 Haystack 전체에서 찾습니다. Variation: 음영도입니다. 오차 허용 값이라고도 합니다. 0부터 255사이에서 쓰시면 됩니다. 생략시 0입니다.

내장 되어있는 ImageSearch 명령어와 흡사합니다. Haystack을 따로 지정해준다는 것과, 출력 변수를 OutputList 하나로 두었다는 점만 다릅니다.

해당 함수는 서치 결과를 반환하며, 찾으면 1, 못찾으면 0을 반환합니다. 서치 오류 시 음수값을 반환합니다. 내장 이미지서치 명령어가 찾을 때 0, 못 찾을 때 1을 ErrorLevel로 반환하는 것과 반대라는 점도 눈여겨 볼만합니다.

소스코드에 써주시면 아래와 같은 형태입니다.

#include Gdip_All.ahk

#include Gdip_ImageSearch.ahk

pToken := Gdip_StartUp()

pHaystack := Gdip_BitmapFromHWND( WinExist ( “제목 없음 – 그림판” ))

pNeedle := Gdip_CreateBitmapFromFile( “pencil.png” )

result := Gdip_ImageSearch(pHaystack, pNeedle, outputVar)

Gdip_Shutdown(pToken)

Exitapp

서치 범위를 지정하지 않아서 Haystack 전체에서 찾고, 음영도 또한 지정해주지 않아서 Needle과 정확히 일치하는 이미지만 찾습니다.

만약 음영값을 준다면 아래와 같이 쓰시면 되겠지요.

result := Gdip_ImageSearch(pHaystack, pNeedle, outputVar, 0, 0, 0, 0, 15)

결과값이 result에 담겼으니, 한번 result 변수를 출력해보세요.

0이 나오면 못 찾은 것이고

1이 나오면 찾은 것입니다.

음수 값이 나오면 구문 오류이니 다시 확인해주세요.

그리고 outputVar는 출력 변수입니다. 이 또한 출력해보세요.

정상적으로 이미지를 찾았다면, outputVar에 찾은 이미지의 좌표가 (X, Y)의 형태로 담겨있는 것을 볼 수 있습니다.

출력 변수의 좌표 쪼개기

출력 변수엔 찾은 이미지의 좌표가 (X, Y)의 형태로 담겨있다고 했습니다. 다만 우리가 실제 오토핫키에서 이 좌표를 이용하려면 X와 Y를 쪼개서 담아줄 필요가 있겠지요.

이 부분은 문자열 파싱의 영역이니 강좌에서 생략하겠습니다. 저는 정규식을 이용하여 out1, out2 변수로 쪼개보았습니다.

RegExMatch (outputVar, “(.*),(.*)” , out)

MsgBox , X: %out1% Y: %out2%

참고: 정규식 강좌 바로가기 >

전체 소스

제가 작성한 gdip 이미지서치 소스입니다.

#Include Gdip_All.ahk

#Include Gdip_ImageSearch.ahk

pToken := Gdip_Startup()

pHaystack := Gdip_BitmapFromHwnd( WinExist ( “제목 없음 – 그림판” ))

pNeedle := Gdip_CreateBitmapFromFile( “Pencil.png” )

result := Gdip_ImageSearch(pHaystack, pNeedle, outputVar)

Gdip_DisposeImage(pHaystack)

Gdip_DisposeImage(pNeedle)

Gdip_Shutdown(pToken)

if (result = 1)

{

RegExMatch (outputVar, “(.*),(.*)” , out)

MsgBox , X: %out1% Y: %out2%

}

ExitApp

Test.ahk 0.00MB

ExitApp을 제외하고 개행으로 4개 부분으로 나누었습니다.

첫번째 부분: 라이브러리 임포트

라이브러리 임포트 두번째 부분: GDI+를 초기화 하고, Haystack과 Needle을 준비한 뒤 이미지서치를 해서 결과를 result 변수에 담았습니다.

GDI+를 초기화 하고, Haystack과 Needle을 준비한 뒤 이미지서치를 해서 결과를 result 변수에 담았습니다. 세번째 부분: 사용된 리소스를 제거하고, GDI+를 정리했습니다.

사용된 리소스를 제거하고, GDI+를 정리했습니다. 네번째 부분: 아까 받아둔 result변수를 통해 조건 분기를 하고, 출력 변수에 저장된 좌표값을 콤마를 기준으로 끊어서 출력했습니다.

크게 헷갈릴만한 부분은 없으니 천천히 봐주세요. 보이는 것만 복잡할 뿐입니다.

result 변수와 출력변수 outputVar는 GDI+가 정리된 뒤에도 살아있으니, 정리를 먼저 해주고 이용했다는 점 또한 알아주셨으면 합니다. 전에도 한 번 말씀드렸지만, GDI+가 정리된 뒤에도 우리가 사용했던 변수는 살아있습니다.

잘 출력 됩니다.

이번 강에서의 gdip 함수

Gdip_ImageSearch()

매개변수: 찾을 영역의 비트맵, 찾을 이미지의 비트맵, 출력변수, X1, Y1, X2, Y2, 음영도

반환 값: 1(찾음), 0(못 찾음), 음수 값(오류)

반응형

#Chapter.12 ,오토핫키 비활성 이미지 서치(Gdip,Gdip

#Chapter.12 ,비활성 이미지 서치

시작합니다.

테라M 매크로 만들기

이번 시간에는 비활성 이미지 서치 입니다. 비활성 이미지를 서치 하려면 라이브러리를 등록을 해야합니다. 오토핫키 공식 홈페이지에서 공유되는 라이브러리 입니다.

사이트 접속하셔서 드래그래서 ahk파일로 저장하셔도 되고 구글링 통해서 다운받으셔도 됩니다.

일단 라이브러리 올려드릴게요.

Gdip.ahk

Gdip_ImageSearch.ahk

#링크 클릭하셔서 받아주세요.

챕터를 시작할때 오토핫키 설치 방법 설명 드리면서 말씀을 드렸었는데요

이 라이브러리를 실행 시키시려면 조건이 필요한데요. 오토핫키를 32비트로 설치하셔야 합니다.

윈도우7 이라고 64비트 설치하신 분들 많으실텐데 32비트로 설치하셔도 동작 잘됩니다.

Gdip.ahk가 32비트 환경에서 작동되게 되어있어요. 64비트로 된 라이브러리도 있다고 하니 구글링 통해서 받으셔도 될겁니다 (저는 있는걸 본적은 있는데 써보진 않았어요)

만약 64비트로 설치되어 있으시다면 32비트로 다시 설치하시는걸 추천드립니다.

그리고 제가 구글링 하면서 알게된 스크립트 조금 수정해서 ahk하나 만들었는데요. 이걸통해서 좀더 쉽게

비활성 이미지 서치를 해볼까 합니다.

일단 제가 만든 ahk 올려드리겠습니다.

Search_img.ahk

일단 이렇게 3가지 라이브러리를 받아주시면 지난 챕터에 이미지 서치를 했듯이 비슷한 방법으로 쉽게 스크립트 짜실 수 있습니다.

이번 시간해에 해볼 스크립트 실행 영상부터 보여드릴게요.

보시면 제가 다른 창으로 녹스 플레이어를 가리고 실행했을때 찾는걸 보실 수 있는데요.

스크립트를 보시기전에 준비해야될 이미지가 있습니다.

제가 가지고 있는 이미지도 올려드릴게요, 적용이 될 것 같은데 안되시면 직접 이미지 잘라서 만들어주세요.

#저기 빨간 네모로 표시해둔 이미지를 캡쳐해주시면되는데요. 이미지 이름은 Tera.bmp

24비트맵 이미지 입니다.

Tera.zip

#이미지 파일입니다.

이미지를 캡쳐하고 잘라서 만드실 때 중요한게 이미지의 좌측 상단 위치인데요, 이미지를 서치할때

찾을 이미지의 좌측 상단 좌표값이 반환되는데, 그좌표를 그대로 활용하려면 마우스를 클릭할 위치에 맞게 이미지를 잘라주시는게 좋아요.

그럼 스크립트 보실게요.

Chapter_12.txt

#위 링크 누르시면 스크립트 다운 됩니다.

gui,show,w100 h100 center,chapter11

gui,Add,Button,x0 y0 w100 h50 gStart,Start

gui,Add,Button,x0 y50 w100 h50 gStop,Stop

return

#gui 설명은 넘어갑니다.

#Include Gdip.ahk

#Include Gdip_ImageSearch.ahk

#Include Search_img.ahk

#다운 해주신 3가지 ahk를 Include 해주셔야 사용가능합니다.

Start:

WinGet,Nox,ID,녹스 플레이어

#WinGet명령어로, Nox라는 변수에, ID값(윈도우에서 실행되는 창들은 각각의 ID값이 있습니다.)을 저장합니다, 녹스 플레이어의 ID를

#대충 말씀드리면 Nox라는 변수에 ‘녹스 플레이어’가 실행되고 있는 창의 고유 ID값을 저장하겠다 정도가 되겠네요.

if(Search_img(“Tera.bmp”,Nox,x,y)){

#제가 드린 Search_img.ahk 라이브러리 안에 있는 함수인데요, 파라미터() 값은 (“이미지 풀네임”,ID,찾은 이미지의

x값을 저장할 변수 이름, 찾은 이미지의 y값을 저장할 변수이름) 입니다. 그리고 boolean값을 return합니다.

#if를 실행하는데 조건은 Search_img()이고 찾을 이미지는 “Tera.bmp”,ID값은 위에서 WinGet을 통해 얻은 아이디값 Nox,찾을 이미지의 x좌표, y좌표 입니다.

#쓰시다보면 익숙 해지실거에요. 이미지를 찾으면 true를 반환하고, 못찾으면 false를 반환합니다.

MsgBox, success!! x=%x% y=%y%

#이미지를 찾으면 x값과 y값을 MsgBox로 보여줍니다.

}

return

Stop:

ExitApp

return

GuiClose:

ExitApp

return

지난 챕터를 보셨다면 아시겠지만 쓰는 방법이 좀 비슷한 것 같지 않나요?

최대한 쉽게 설명하려 했는데 제가 생각해도 처음보시는 분들은 많이 어려울 것 같네요.

일단 대충 쓰는 법만 알겠으면 써보세요 쓰다보면 알 수 있습니다.

그리고 Gdip 라이브러리와 제가 올린 ahk 안 함수들 설명은 다음에 좀더 자세하게 설명할 수 있는 기회가 생기면 알려드리겠습니다. 일단은 저렇게 사용하시면 기존에 이미지 서치와 흡사 하니 쓰시기 편할 겁니다.

다음 Chapter에서는 비활성으로 이미지를 찾아서 클릭하는 방법에 대해 알아보겠습니다.

오토핫키 비활성 이미지서치와 비활성클릭 라이브러리

728×90

반응형

짜근햄Lib(AutoHotKey).zip 0.03MB

캡쳐받고 이미지편집하고 글쓰고 하려니

너무 힘든것 같습니다.

오토핫키를 조금이라도 아시는분들은 잘 살펴보시면 충분히 분석될수 있는 라이브러리 입니다.

유튜브 설명 주소

반응형

1부 – 오토핫키 매크로에서 비활성 이미지 서치 후 찾은 이미지를 클릭하는 방법. > 팁 앤 테크

안녕하세요. 엔지엠소프트웨어입니다. 엔지엠 매크로에 오토핫키 기능이 포함되면서 관련 내용들을 쭈우욱~ 작성하고 있습니다. 엔지엠 매크로는 GUI로 쉽게 매크로를 제작할 수 있도록 해줍니다. 오토핫키는 코딩 방식이라서 처음에 접하기엔 좀 어려울 수 있습니다. 하지만, 특정 기능을 구현할 때 엔지엠 매크로보다 오토핫키가 더 빠르고 쉽게 원하는 결과를 만들어 낼수도 있습니다. 물론, 반대의 경우도 있죠^^; 이 예제를 테스트하기 위해 엔지엠 에디터를 실행하고 새로운 스크립트를 하나 추가하세요.

이 글을 작성하기 위해 미리 오토핫키로 이것 저것 테스트를 해보았습니다. 비활성 이미지 서치와 비활성 마우스 클릭, 비활성 키보드 입력등등… 윈도우 10에서는 정상적으로 동작하지만, 윈도우 11에서는 비활성 매크로가 일부 프로그램에서 정상 동작하지 않았습니다. 윈도우 11에서 Input Control(입력 창)들이 대거 변경되었고, 기본 Edit 컨트롤이 RichEdit 컨트롤로 변경되었습니다. 엔지엠 매크로는 윈도우 11에서도 100프로 대응이 되지만, 오토핫키로 비활성 매크로를 만든다면 업데이트된 새로운 버전이 나올때까지 기다려야 할거 같습니다.

일단 윈도우 10에서 비활성으로 오토핫키 이미지 서치를 하려면 이 글에 첨부되어 있는 GdipImageSearch.zip 파일을 다운로드 받은 후 압축을 풀어야 합니다. 그러면, Gdip.ahk와 Gdip_ImageSearch.ahk 파일 2개가 나옵니다. 코드가 좀 길긴하지만, 메모장 또는 텍스트 에디터로 열어보세요. [ 오토핫키 매크로 만들기 ] 강좌에서 소개한 Visual Studio Code를 사용해서 열어도 됩니다. 아래 그림과 같이 엄청난 코드가 들어 있습니다. 이 코드들을 다 이해할 필요는 없습니다. 적당히 수정해서 사용할 수 있는 정도면 될거 같아요!

오토핫키는 비활성으로 이미지를 처리하기가 매우 어렵습니다. 이미지 서치는 원본 이미지와 대상 이미지 2개가 필요합니다. 여기서 원본 이미지는 대상 이미지를 찾을 이미지를 말합니다. 예를 들어서 윈도우 바탕화면에서 휴지통 아이콘을 찾는다고 하면, 원본 이미지(Source Image)는 윈도우 바탕화면이되고, 대상 이미지(Target Image)는 휴지통 아이콘이 됩니다. 다시 말해서 이미지 서치는 윈도우 바탕화면에서 휴지통 이미지를 찾는다는걸 의미합니다. 비활성 이미지 서치는 윈도우 캡쳐와는 다릅니다. 사용자가 선택한 창만 캡쳐가 되어야 하고 이 때 다른창에 가리거나 창이 이동되었더라도 해당 창만 캡쳐가 됩니다. 오토핫키에서 포인터로 처리하기 위해 Gdip을 사용합니다.

엔지엠 에디터에서 [ 오토핫키 코드 실행 ] 액션을 스크립트에 추가합니다. 이 액션은 에디터의 우측 하단 외부 API 탭에 있습니다.

그림판을 실행하고, 연필 그림을 미리 캡쳐해서 저장 해둡니다. Pencil.png로 바탕화면에 저장 해주세요. 아래 코드는 그림판에서 연필을 찾는 전체 코드입니다.

#Include Gdip_All.ahk #Include Gdip_ImageSearch.ahk pToken := Gdip_Startup() pHaystack := Gdip_BitmapFromHwnd(WinExist(“제목 없음 – 그림판”)) pNeedle := Gdip_CreateBitmapFromFile(“/바탕화면/Pencil.png”) result := Gdip_ImageSearch(pHaystack, pNeedle, outputVar) Gdip_DisposeImage(pHaystack) Gdip_DisposeImage(pNeedle) Gdip_Shutdown(pToken) if (result = 1) { RegExMatch(outputVar, “(.*),(.*)”, out) MsgBox, X: %out1% Y: %out2% }

스크립트를 실행하면, 그림판에서 연필 그림을 찾은 후 메세지 박스로 표시해주는걸 확인할 수 있습니다. 여기서, result 값이 1이면, MsgBox가 아닌 ControlClick 함수를 사용해서 마우스 클릭으로 변경해주면 됩니다. 오토핫키에서 MouseClick은 활성 모드로 마우스가 동작하고, ControlClick은 비활성 모드로 마우스가 동작합니다. 이외에도 PostMessage와 SendMessage가 있습니다. 하나씩 알아보기로 하고, 일단 엔지엠 매크로에서 비활성 이미지 서치와 클릭을 테스트 해볼께요. 아래 동영상처럼 비활성으로 이미지를 찾고, 마우스가 클릭할 창을 [ 핸들 추가 ] 액션으로 선택 해줍니다. 그리고, [ 이미지 서치 ] 또는 [ 이미지 매치 ] 액션으로 찾을 이미지를 캡쳐 따고 마우스 클릭 속성만 설정해주면 됩니다. 정말 간단하죠^^?

엔지엠 매크로에서는 핸들을 추가해두면 그 이후부터는 모든 액션이 비활성으로 동작합니다. 만약, 비활성 상태에서 활성 상태로 변경해야 한다면 핸들을 삭제하기만 하면 됩니다. 쉽고 빠르게 하이브리드 매크로를 제작할 수 있습니다. 오토핫키도 비슷하지만, 비활성 동작은 제약이 많고 개발하기가 어렵습니다. 특히나 윈도우 11에서 제대로 동작하지 않는 부분들 때문에 시간을 많이 낭비했는데요. 이 글은 윈도우 10 기준이므로 여러분들은 걱정하지 않으셔도 됩니다^^; 2부에서는 오토핫키의 비활성 클릭인 ControlClick과 SendMessage, PostMessage 함수들에 대해서 알아보도록 하겠습니다.

개발자에게 후원하기

추천, 구독, 홍보 꼭~ 부탁드립니다.

여러분의 후원이 빠른 귀농을 가능하게 해줍니다~ 답답한 도시를 벗어나 귀농하고 싶은 개발자~

감사합니다~

오토핫키 ImageSearch 를 대신할 FindText

https://youtu.be/lYItE_PRSzc

FindText 간단하게 설명하는 영상

FindText 내에 MultiColor 기능 간단 설명

FindText 를 활용한 비활성 이미지서치 간단 설명

FindText 출처 : https://www.autohotkey.com/boards/viewtopic.php?f=6&t=17834

혹은 이 곳에서 다운로드

FIndText.ahk 0.10MB

FindText 의 장점이라 하면 일단 이미지파일이 필요가 없음.

내가 오토핫키로 매크로를 만들다보면 분명 ImageSearch 를 써야하고 쓰게되면 Image 파일이 무한정 늘어나게 되는데

이런 식으로 이미지가 점점 늘어나게 된다…

이런 수고로움이 사라진다. 이미지를 텍스트화 하여 변수로 저장하기 때문이다.

GDIP 비활성 이미지서치 질문드립니다

#Include Gdip.ahk

#Include Gdip_ImageSearch.ahk

#Include Search_img.ahk

GDIP 라이브러리 3가지 파일 받아서 폴더에 옮겨놨구요 ㅠ

예제로 쓴 11.BMP 이미지파일도 비활성 말구는 엄청 잘 찾는데

비활성 GDIP 이미지 서치로 넣으면 아무런 반응이 없습니다ㅠ

스크립트는 잘못된게 없는거 같은데 처음부터 막혀버리니 ㅠㅠ답답하네요

오토핫키는 32비트로 설치했습니다. 답변 부탁드려요~

키워드에 대한 정보 오토 핫키 비활성 이미지 서치

다음은 Bing에서 오토 핫키 비활성 이미지 서치 주제에 대한 검색 결과입니다. 필요한 경우 더 읽을 수 있습니다.

See also  롤 다시 하기 조건 | 알고있지만 사용하기 어려운 '다시하기' 기능 ! '다시하기'기능 완벽 정리 이젠 탈주자 때문에 스트레스 받지 말자 ! [리그오브레전드 스토리 / 롤 스토리] [신짱] 274 개의 새로운 답변이 업데이트되었습니다.
See also  안대 쓰는 법 | 안대 착용하는 방법 52 개의 자세한 답변

See also  예수님 의 기도 | [요한복음] 예수님의 기도 | 15-1강 | 김형익 목사 | 나침반 바이블 97 개의 정답

이 기사는 인터넷의 다양한 출처에서 편집되었습니다. 이 기사가 유용했기를 바랍니다. 이 기사가 유용하다고 생각되면 공유하십시오. 매우 감사합니다!

사람들이 주제에 대해 자주 검색하는 키워드 오토핫키 FindText 비활성 이미지서치 설명 – 응용편 2

  • 동영상
  • 공유
  • 카메라폰
  • 동영상폰
  • 무료
  • 올리기

오토핫키 #FindText #비활성 #이미지서치 #설명 #- #응용편 #2


YouTube에서 오토 핫키 비활성 이미지 서치 주제의 다른 동영상 보기

주제에 대한 기사를 시청해 주셔서 감사합니다 오토핫키 FindText 비활성 이미지서치 설명 – 응용편 2 | 오토 핫키 비활성 이미지 서치, 이 기사가 유용하다고 생각되면 공유하십시오, 매우 감사합니다.

Leave a Comment