처음엔 오픈소스 찾아서 쓰려고 했는데 죄다 제대로 안되고 내가 원하는 기능이 아니었음.
그래서 직접 만들었는데 뭐 서치성능이 강력하진 않아도 타협하고 사용할만은 하더라
파라미터로 대상 프로세스 핸들이랑 이미지 등등 넣고 선언해서
XX.search(), XX.search_while(), XX.compare() 등등 함수로 간단히 쓸수 있음.
mouse는 포스트메세지랑 시간관리 같은 기능 들어있는 객체고...
처음엔 오픈소스 찾아서 쓰려고 했는데 죄다 제대로 안되고 내가 원하는 기능이 아니었음.
그래서 직접 만들었는데 뭐 서치성능이 강력하진 않아도 타협하고 사용할만은 하더라
파라미터로 대상 프로세스 핸들이랑 이미지 등등 넣고 선언해서
XX.search(), XX.search_while(), XX.compare() 등등 함수로 간단히 쓸수 있음.
mouse는 포스트메세지랑 시간관리 같은 기능 들어있는 객체고...
구현원리가 뭐임?
그냥 맨땅에 쳐박은거긴 한데...
프로세스의 화면 버퍼를 설정한 범위만큼 캡쳐하고, 서치할 소스이미지랑 0,0부터 픽셀 단위로 비교하면서 일치하는 점을 발견하면 그 점을 기준으로 이미지 전체를 대조함.
포인터써서 만들면 빠른데 unsafe 써가지고
대조할때는 2*2이나 3*3범위의 픽셀값 평균을 사용해서 화소가 약간은 뭉개져도 인식할 수 잇도록 했음. 오차값도 설정할 수 있고..
어느 부분에 포인터를 써여??
비트맵 픽셀값들을 가져오는부분에서요
아항... 근데 서치할 이미지가 큰것도 아니고 해서 속도에서 크게 문제되진 않았음..
C언어 일단 dll을 만드세요 속도가 빠른 bitblt로 dc에 담아오시고 compare()는 왠만해서 전부 0,0부터 검사할 필요없고 0,0검사후 0,2검사 이렇게 조금조금띄어써도 문제가 없던데요