매크로

조회 수 1578 추천 0 댓글 2
여기저기 검색해서 이런 스크립트를 만들었는데 

#include Gdip.ahk
SetTitleMatchMode 2

ImageSearch_Inactive(Title, ImgFileName)
{
If !pToken := Gdip_Startup()
{
MsgBox, 48, gdiplus error!, Gdiplus failed to start. Please ensure you have gdiplus on your system
ExitApp
}
OnExit, Exit

pBitmapHayStack := Gdip_BitmapFromHWND(hwnd := WinExist(Title)) 
pBitmapNeedle := Gdip_CreateBitmapFromFile(ImgFileName)

Width1 := Gdip_GetImageWidth(pBitmapHayStack), Height1 := Gdip_GetImageHeight(pBitmapHayStack)
Width2 := Gdip_GetImageWidth(pBitmapNeedle), Height2 := Gdip_GetImageHeight(pBitmapNeedle)
E1 := Gdip_LockBits(pBitmapHayStack, 0, 0, Width1, Height1, Stride1, Scan01,BitmapData1)
E2 := Gdip_LockBits(pBitmapNeedle, 0, 0, Width2, Height2, Stride2, Scan02,BitmapData2)

MCode(Gdip_ImageSearch, "83EC148B4424309983E20303C28BC88B442434995383E2035503C2C1F80256C1F902837C24"
. "30005789442420C7442410000000000F8EBE0000008B5C24288B7C24388D048D00000000894424188B442430895C241CE"
. "B098DA424000000008BFFC74424440000000085C07E6D895C24148B6C242CC7442440000000008D6424008B4C24403B4C"
. "243C0F8D8600000033C985FF7E158BD58BF38B063B02751F4183C20483C6043BCF7CEF8B442420035C2418FF44244003C"
. "003C003E8EBC38B4C24448B5C24148B4424304183C3043BC8894C2444895C24147C978B4C24108B5C241C035C2418413B"
. "4C2434894C2410895C241C0F8C68FFFFFF8B5424488B44244C5F5E5DC702FFFFFFFFC700FFFFFFFF5B83C414C38B4C244"
. "48B5424488B44244C5F495E890A8B4C24085D89085B83C414C3")

Time1 := A_TickCount
VarSetCapacity(x, 8, 0), VarSetCapacity(y, 8, 0)
Loop, 100
DllCall(&Gdip_ImageSearch, "uint", Scan01, "uint", Scan02, "int", Width1, "int", Height1, "int", Width2, "int", Height2, "int", Stride1, "int", Stride2, "int*", x, "int*", y)
;MsgBox, % "Time for 100 searches: " A_TickCount-Time1 "ms`nx: " x "`ny: " y ;%
Gdip_UnlockBits(pBitmapHayStack,BitmapData1), Gdip_UnlockBits(pBitmapNeedle,BitmapData2)
Gdip_DisposeImage(pBitmapHayStack), Gdip_DisposeImage(pBitmapNeedle)
return [x, y, Width2, Height2]
}

MCode(ByRef code, hex)
{
VarSetCapacity(code, StrLen(hex)//2)
Loop % StrLen(hex)//2 ;%
NumPut("0x" SubStr(hex, 2*A_Index-1, 2), code, A_Index-1, "char")
}

F5::
WinGetClass, class, A
MsgBox, The active window's class is "%class%".
return





F9::
searchpos := ImageSearch_Inactive("BlueStacks","test.png")
if searchpos[1]>0 and searchpos[2]>0
x := searchpos[1] + Ceil(searchpos[3]/2) ;클릭 지점을 이미지 좌/상 에서 이미지 중간으로 보정, 중간값이 정수로 떨어지게 하기 위해 올림(ceil)사용
y := searchpos[2] + Ceil(searchpos[4]/2) 
;MsgBox, % "Time for 100 searches: " A_TickCount-Time1 "ms`nx: " x "`ny: " y ;%
;ControlClick , BlueStacksApp1, BlueStacks, _ctl.Window, L, 1, x%x% y%y% NA
;ControlClick, x%x% y%y%,BlueStacks,,,, 
x := % "" x ""
y := % "" y ""
Pos := x|y<<16
            postmessage,0x201,1,%Pos%,,BlueStacks ;title 프로그램의 pos지점을 왼클릭으로 누른다
postmessage,0x202,0,%Pos%,,BlueStacks ;왼클릭을 뗀다.
return


Exit:
Gdip_Shutdown(pToken)
ExitApp
return


f9를 누르면 블루스택에서 구동중인 앱에서 test.png 에 해당하는 그림을 비활성 상태에서 찾아서 클릭까지 하는 스크립트 입니다.

일단 비활성 상태에서 이미지 서치까지는 잘 되는데 비활성 클릭을 하려고 하니 안되는군요.

controlclick으로도 해보고 postmessage로도 해봤는데 둘 다 똑같은 증상이 나타나면서 비활성 클릭이 안됩니다.

일단 두 명령어 모두 클릭이 완전히 안되는 것은 아니고 '활성 상태에서 블루스택 윈도우 안에 마우스가 머물고 있을 때' f9를 누르면 해당 이미지 클릭이 되긴 합니다

하지만 블루스택 윈도우가 비활성 상태이거나 마우스가 블루스택 윈도우를 벗어나 있으면 클릭이 안되는군요.

비활성 상태에서 클릭이 가능하게 하는 방법이 없을까요?


List of Articles
분류 제목 글쓴이 최근변경 추천
질문 안녕하세요 오토핫키 질문이 있어요 2 kjk 2017.06.06 0/0
자유 메M은 오핫으로만들어야한다던데 1 용용동동 2017.05.26 0/0
질문 같은 줄의 이미지 두개 인식하려면 어찌하나요 1 zilla 2017.06.03 0/0
질문 오토핫키를 이용하여 한글 에서 수식 수정창 띄우기를 ... 1 오토핫삼 2017.06.07 0/0
질문 이미지서치 성능개선할 수 없나요 3 츠네로바 2017.05.24 0/0
질문 블루스택에서 비활성 클릭하기 2 cis105 2017.06.30 0/0
질문 이미지 서치후 그 이미지를 클릭하려면 어떻게 하나요?... 100z 2017.05.22 0/0
질문 간단한 질문입니다 구이버튼관련... 4 가족오락관 2017.05.21 0/0
자유 오토핫키 제작으뢰를좀 하고싶은대 갓지노 2017.05.15 0/0
질문 피파3 매크로 제작의뢰합니다. ㅇd 2017.05.14 0/0
질문 픽셀서치 좀도와주세요. 2 세나블텍 2017.06.07 0/0
자유 매크로로 돈벌만한게임있나요? 9 dpslalxz 2017.07.03 0/-5
질문 adb 연결시 오류가 뜹니다. 4 소랑쥐 2017.10.30 0/0
질문 오토핫키 이미지서치가안되는데어떻게해야할까요? 2 supreme 2017.05.13 0/0
질문 녹스 앱플레이어에서 마우스 드래그 어떻게하나요? momobs 2017.05.11 0/0
질문 이미지 서치 transblack 인식못함 질문이요 pkpk111 2017.05.11 0/0
자유 여기에도 오토핫키 커뮤니티가 있네요.. 1 가볍게 2017.06.06 0/0
질문 녹스에서 매크로 실행하려면 설정 따로 해야 하는 게 ... 1 cis105 2017.05.12 0/0
질문 단순한 순서대로 이미치 서치하는 프로그램 오류좀 잡... 1 pkpk111 2017.05.08 0/0
질문 이미지서치 다른크기의 동일 이미지 2 pkpk111 2017.05.26 0/0
Board Pagination Prev 1 ... 888990919293949596 ... 209 Next
/ 209

전체 최신 인기글

전체 주간 인기글