#NoEnv
#SingleInstance force ; 스크립트를 동시에 한개만 실행
#Persistent ; 핫키가 없더라도 스크립트 실행을 유지
SetBatchLines,-1 ; 라인간 딜레이를 없애서 속도 상승
coordmode, pixel, screen
SetWorkingDir %A_ScriptDir%
SetTitleMatchMode, 2
ActiveID:="NoxFirst"
IfWinExist, NoxFirst
WinActivate, %ActiveID%
WinGetPos, winX, winY, winW, winH, %ActiveID%
DebugMode := 1
SendMode Input ; Recommended for new scripts due to its superior speed and reliability.
X2:=X+W
Y2:=Y+H
return
F1::
gui, submit, nohide
wingettitle, title, Nox ; 1번)타이틀의 첫부분으로 검색시 성공
msgbox,,,%title%
if(imageSearcher(x,y, "\Image\레이븐대기2.bmp")=1)
{
msgbox, 이미지 찾음 오예~
}
else
{
msgbox, 이미지 못찹음 ㅋㅋㅋㅋㅋ
}
RETURN
F12::
SEND,#+{Left}
return
guiclose:
exitapp
return
;이미지 찾을때까지 대기후 클릭
waitImageClick(img) {
Loop {
If imageSearchClick( img) = 1
{
Break
}
Sleep, 500
}
Sleep, 200
Return
}
;이미지 서치
imageSearcher( ByRef imgX, ByRef imgY, img)
{
global ActiveID
WinGetPos, winX, winY, winW, winH, %ActiveID%
ImageSearch, oX, oY, winX, winY, winX+winW, winY+winH, *50 %A_ScriptDir%\%img%
If ( ErrorLevel = 0)
{
imgX := oX
imgY := oY
return 1
}
else If ( ErrorLevel = 1){
return 0
}
}
;서치앤클릭
imageSearchClick(img)
{
If imageSearcher( x, y, img) = 1
{
sendClick( x, y)
Return 1
}
Return 0
}
;클릭
sendClick( x, y) {
global ActiveID
WinGetPos, winX, winY, winW, winH, %ActiveID%
px:=x
py:=y
p := px|py<<16
PostMessage, 0x201, 0, %p%, , %ActiveID%
PostMessage, 0x202, 0, %p%, , %ActiveID%
Sleep, 200
Return
}
위와 같이 스크립트를 작성하고 녹스앱을 실행하고
스크립트를 실행하면
녹스앱창을 인식합니다....
그리고 이미지서치구간에서
이라고 뜨는데요 이미지를 바꿔보고 오차율을 50 100 200으로 넣어도 인식이 안됩니다...OTL....
도와주세요 ㅜ0ㅜ 비활성 클릭은 그다음 문제 같네요 ㄷㄷㄷㄷ
if(imageSearcher(x,y, "\Image\레이븐대기2.bmp")=1) ;함수에 대응하는 img에 "\Image\레이븐대기2.bmp" 를 주었습니다.
ImageSearch, oX, oY, winX, winY, winX+winW, winY+winH, *50 %A_ScriptDir%\%img% ;함수에서 img 변수를 사용하기 전에 \ 기호를 넣었습니다. 한번 img값을 대입해서 직접 적어봅시다
%A_ScriptDir%\\Image\레이븐대기2.bmp ; 이렇게 되겠죠
에러레벨값은 2가 나올것입니다. 에러레벨값 확인하시고 수정해서 해보세요.