RealWinSize(ByRef posX, ByRef posY, ByRef width , ByRef height, ProcessID) ; 실제 윈도우 영역
{
WinGetPos, X, Y, W, H, %ProcessID%
SysGet, wFrame, 7
SysGet, wCaption, 4
posX := X
posY := Y
width := W - wFrame * 2
height := H - wFrame * 2 - wCaption
return
}
블루스택에선 잘쓰고있던 함수였는데
이녀석을 인터넷익스플로러로 가져오니까 왜이렇게 확 느려지는건지 모르겠습니다ㅜ
위함수를 사용하는 아래 이미지서치함수를 호출하자마자 gui창이 엄청 버벅거리네요. 어디가 문제일까요ㅜ?
IsImage(ByRef clickX, ByRef clickY, ImageName)
{
sleep,1000
CoordMode, Pixel, Screen
RealWinSize(posX, posY, width, height, "$#@$*&(!@. - Internet Explorer")
appWidth := posX + width
appHeight := posY + height
ImageSearch, vX, vY, posX, posY, appWidth, appHeight, *80 %ImageName% ; 색상 오차 50
IfNotExist, %ImageName%
{
return false
}
if (ErrorLevel = 0)
{
clickX := vX - posX
clickY := vY- posY
log := " @ 이미지 찾음: " ImageName
AddLog(log)
return true
}
if (ErrorLevel = 1)
{
clickX := 0
clickY := 0
log := " @ 이미지 없음: " ImageName
AddLog(log)
return false ; 못찾으면 false
}
}
궁금한게 있는데요 소스 코드 전체가 없어서 감이 안 잡히긴 하는데요
IsImage 를 다양한 이미지에 대해 여러번 부르는 행위를 혹시나 루프걸로 하시고 계신다면
sleep,1000
요 위의 루틴은 밖으로 빼시는게 도움이 될지 모르겠네요. 쉬는 시간은
IsImage(....)
sleep 1000
이런식으로 따로 쓰셔서 속도를 더 Save하실수 있을거 같기도 합니다만;; 잘모르겠네요 ㅠㅠ
IsImage(ByRef posX, ByRef posY, ByRef appWidth, ByRef appHeight, ByRef clickX, ByRef clickY, ImageName)