매크로

질문
2018.12.03 15:25

멀티서치 관련 질문있습니다.

조회 수 184 추천 0 댓글 0


;==============================================================global변수

global adb := "C:\Program Files (x86)\Nox\bin\nox_adb.exe"
global adbIP := "127.0.0.1:62001"
global imageCount := 0
global Title:= "Nox" 

;==============================================================cmd상주



Attach:
DetectHiddenWindows, on
;Run, %comspec% /k  cPid
Run, %comspec% /k  ,,hide UseErrorLevel, cPid
WinWait, ahk_pid %cPid%,, 10
DllCall("AttachConsole","uint",cPid)
hCon:=DllCall("CreateFile","str","CONOUT$","uint",0xC0000000,"uint",7,"uint",0,"uint",3,"uint",0,"uint",0)
global objShell := ComObjCreate("WScript.Shell")
return

Clean_up:
DllCall("CloseHandle", "uint", hCon)
DllCall("FreeConsole")
Process, Close, %cPid%
ExitApp

;==============================================================함수

;로그작성함수
WriteLog(msg){
FormatTime, nowTime, ,MM-dd HH:mm:ss
LV_Add("",nowTime,+msg)
LV_ModifyCol()
}


;ADB 드래그함수
ADB_Drag(x1,y1,x2,y2,duration){
    
    objExec := objShell.Exec(adb " -s " adbIP " shell input swipe " x1 " " y1 " " x2 " " y2 " " duration)
    
}

;발견이미지 개수 카운트
M_ImageCount(image){
result:=MultipleImagesearch(0,0,A_ScreenWidth,A_ScreenHeight,image)
;imageCount :=result

Loop,Parse,result,`n
{
If A_LoopField=  ;잘라진문자열을 참조할수있다.  안에 문자열이없으면 
{
imageCount := A_Index-1
Break
} ;문자열없으면 break
}
return imageCount
}


M_ImageSearch(image,imageCount){ ;이미지 2개서치후 드래그  돌합치기
dir:="image/start.bmp" ;앱플레이어의 상대적위치를 계산하기위해서
Imagesearch,s_x,s_y,0,0,A_ScreenWidth,A_ScreenHeight,%dir%
;MsgBox,%s_x%,%s_y%
result:=MultipleImagesearch(0,0,A_ScreenWidth,A_ScreenHeight,image)

Loop,Parse,result,`n ;문자열을 지정의 단락 문자로 분할하고, 각각 대해 반복 처리
{ ; x a yi 으로 잘렸다.
If (imageCount<2 || A_Index==3){  ; 이미지가  2개까지만  중복서치되도록
Break
} ;문자열없으면 break
StringSplit,Pos,A_LoopField,a ;a 단위로자른다 x y 분리
;ToolTip,%A_Index%,%Pos1%,%Pos2%,%A_Index%
if(mod(A_Index,2)==1){
x1:=pos1-s_x
y1:=pos2-s_y-40
}else if(mod(A_Index,2)==0){
x2:=pos1-s_x
y2:=pos2-s_y-40
}
}
;MsgBox,%x1%,%y1%,%x2%,%y2%
if(x1!="" && x2!=""){
ADB_Drag(x1,y1,x2,y2,"300") ;드래그
return false
}else return true
}


;==============================================================시작


F2::
{
GuiControl,,매크로상태,매크로상태 : 일시정지
    Gui,Submit,nohide
pause
}
return

F3:: ;테스트용
{
SetBatchLines,-1
CoordMode,Pixel,Screen
CoordMode,ToolTip,Screen
ImageCount:= M_ImageCount("image/stone8.bmp")
M_ImageSearch("image/stone8.bmp",ImageCount)
sleep,200

return
}

Button로그:
{
Gui,2:Show,w270 h220, 로그
return
}


while(1){

ImageCount:= M_ImageCount("image/stone.bmp")
M_ImageSearch("image/stone.bmp",ImageCount)
sleep,400

}


return
}

Button재시작:
{
Reload
return
}
Button종료:
{
ExitApp
}




MultipleImagesearch(xs,ys,xl,yl,image)
{
pos=     ;pos 초기화
xss:=xs
yss:=ys
loop
{
Imagesearch,x,yi,%xss%,%yss%,%xl%,%yl%,%image%
If Errorlevel=1
Break
pos=%pos%%x%a%yi%`n   ; = 는 이어붙이기니까 pos에  기존꺼랑 그 이미지 위치저장됨 x a yi `n 순
;처음은 그냥 이미지서치
loop
{
xss:=x+1 ;x좌표에 1씩더해서  중복서치를 없앤다.
If xss=%xl%
Break
Imagesearch,x,y,%xss%,%yss%,%xl%,%yl%,%image%
If Errorlevel=1
Break
pos=%pos%%x%a%y%`n
}
xss:=xs
yss:=yi+1
If yss=%yl%
Break
}
Sort,pos,u  ;u 차례대로 정렬하고 중복을없앤다.
return pos
}

GuiClose:
ExitApp

어떤분의 공유로 해당 스크립트를 계속 공부 중인데요. 궁금중이 있어서 올립니다.
해당 내용 테스트 결과 x1,y1값을 못찾고 있어서 진행이 안되는 것으로 보입니다. 이미지를 못찾을 가능성이 커보이기는 한데...
정확한 어느부분을 손대야 할지 모르겠네요...이미지 위치도 정확히 인식은 하는데..프로그램에서 동일 이미지를 못찾는건지..수정해야 하는 부분 좀 지적 좀 해주세요.



List of Articles
분류 제목 글쓴이 최근변경 추천
질문 return 이 궁금합니다 ㅠㅠ 10 밴클리프 2014.11.11 0/0
자유 숨어야산다님 조언 따라 만들어본 픽셀,좌표 확인기! 11 으뜸어린이 2014.11.28 1/0
질문 themida 사용하시는분 계신가요? 7 호로록뚝딱 2014.11.26 0/0
질문 비활성 마우스 질문드립니다. 3 lidmt 2018.02.20 0/0
정보 이미지서치 후 비활성 클릭 17 lidmt 2016.07.02 0/0
질문 이미지서치 부분입니다. 변수에 값을넣는데요. 4 우후훅 2014.11.11 0/0
자유 SciTE4AutoHotkey 자료 요청드립니다. 8 레이븐 2014.11.18 0/0
질문 gui버튼 시작중지 보임안보임설정부분요. 11 우후훅 2015.03.07 0/0
질문 이미지서치 확장자 질문드립니다. 6 생물 2014.11.17 0/0
질문 혹시 핫키 눌러서 수행중에 다른핫키도 먹히게 하는게 ... 3 으뜸어린이 2014.11.15 0/0
질문 GUI 버튼 체크상태 실시간판별 어떻게하나요. 13 우후훅 2014.11.14 0/0
질문 오토핫키 잘하시는분 도움좀 부탁드려요. 3 라디 2014.11.15 0/0
질문 비활성 메크로는 오토핫키만 가능한가요? 28 으뜸어린이 2014.12.01 0/0
자유 특정게임 매크로 작동안되는것들이 문제죠. 6 우후훅 2014.11.15 0/0
질문 이미지서치할 때 같은 폴더내 모든 이미지를 찾는 명령... 5 으뜸어린이 2014.11.18 0/0
질문 별이되라 이미지서치 이부분 잘되시나요? 8 우후훅 2015.01.15 0/0
질문 이거 비활성으로 싹다 바꾸려면 어떻게 해야하나요?? 10 cris 2015.03.20 0/0
자유 핫키, Postmessage 어떻게들쓰고계세요? 15 우후훅 2016.04.08 0/0
질문 gui,add,picture 를 버튼형식으로 만들 수는 없나요?? 10 으뜸어린이 2014.11.26 0/0
자유 오토핫키 함수에 관해서요. 6 우후훅 2014.11.20 0/-1
Board Pagination Prev 1 34567891011 ... 209 Next
/ 209

전체 최신 인기글

전체 주간 인기글