If 를 써서 다릉 매크로도 만들어봤는데요 F1:: Loop If GetKeyState("LButton") { Sleep, 1 moveAmount := (moveAmount = 2) ? 3 : 0 mouseXY(moveAmount,2) } else break Return mouseXY(x,y){ DllCall("mouse_event",int,1,int,x,int,y,uint,0,uint,0) } 이소스에서 전 f1를 한번 누르면 스크립트가 실행되 좌클릭을 누르면 마우스커서가 이동허게하고 다시 f1를 누르면 스크립트가 정지하게 하고싶은데 지금은 f1과 좌클릭을 함께 동시에 눌러랴 마우스 커서가 움직이네요 뭘잘못한거죠? ㅜㅠ
else if(조건)else 와 if 사이에 이미지를 추가 하고 싶다면 else if(조건) 으로 이미지 를 추가하면 된다고 하셨는데 똑같이 써봐도 else if(조건) 의 이미지는 서치를 못하더라구요여기서 괄호 안의 (조건) 에 한글로 조건이 아닌건가요? 완전 초보자 입니다.
혹시 지금도 답변을 달아주시는지 몰르지만 한번 남겨봅니다 else if 를 같이 사용해보려고 하는데 1번이미지를 못찾으면 else if 로 조건2번 이미지를 찾게 되서 그걸 종료 시키고 다시 1번 이미지를 눌러 3번으로 가려고 하는데 else를 쓰니깐 1번과 2번만 반복하더라구요 이럴땐 else if 를 또 써도 되는건가요??
저도 보고 잘 배우고있는데요 저는 조금다르게 이미지를 인식해서 계속 클릭을 합니다 그런데 갑자기 다른이미지가 나와서 원래 누르던 이미를를 못누르게해요 그래서 갑자기 나온 이미지를 클릭할려고 해요 근데 그게 잘 안돼네요 그러니깐 제가 원하는건 원래 누르던거 계속 누르다가 다른이미지 나오면 그 다른 이미지 나온걸 누르고 하던 작업을 마저하고 싶은겁니다 근데 나오는 이미지는 일정하게 나옵니다
간절히 부탁합니다 제가 하고있는 스크립트 상황은 지금 이렇습니다 ;mageSearch,OutputVarx,OutputVary,X1,Y1,X2,Y2imagefile ImageSearch, pX,pY,0,0, A_ScreenWidth, A_ScreenHeight,*50 주사위 돌리기.bmp if(errorlevel = 0){ pX += 90 pY += 20 Loop MouseClick,l, %pX%, %pY% 여기서 뭘더 해야지 갑자기 나온 이미지를 클릭하고 하던 작업을 계속하게 할수잇을까요 원래누르는 이미지는 한개이고 갑자기 일정하게 출현 하는 이미지는 총 2개입니다
< 캡쳐 방법 > 여기서 활성화=선택되어 있는상태를 뜻함 !! 캡쳐할 창을 활성화시켜서 Alt 키 + 프린트스크린 키 눌러줌 (캡쳐됨), 그림판열어 확대를 12.5%로 해주고, 그림판 모서리잡고 늘려준후에 Ctrl 키 + V 키 눌러(붙이기), 그림판다시 확대시켜 원하는부분자르기해서 bmp24비트 로 저장 해주고, 그림판에서 Ctrl 키 + Z 키 누르면 되돌리기되서 자르기전 원본이미지가 다시 살아남 거기서 또다른부분을 위 방법처럼 반복해서 원하는만큼 자르기작업 해주면 캡쳐작업이 끝남 ^0^
오토핫키 설치된 폴더는 건드리시면 안됩니다.ㅠ 음... 우선 뭐가 문제인지를 확인하는게 제일 우선입니다. 아래 링크로 가셔서 디버깅 강의를 보시고 디버그모드로 이미지서치 아래의 ErrorLevel에 어떤 값이 들어가는지를 확인하는게 좋을 것 같습니다.^^ ruclips.net/video/Roa28l5wRiA/видео.html
이미지 서치 작업중 문의 드립니다. 게임상 화면에 마우스 좌표로클릭 후 W 입력, 이미지 서치 후 찾았을 경우 W 바로 입력 매크로를 만들고 있습니다 해당 마우스 좌표에서 W까지 사용은 되었으나 랜덤 시간으로 해당 이미지가 나타나게 됩니다.(약3~5초사이) 그리고 이미지서치 후 다시 W 입력하는것은 안되옵니다. 한번 손봐주십시요 ㅠㅠㅠㅠ 추가로 이미지 서치 때 해당 A라는 이미지가 발견되면 한 10초후에 다시 처음으로 가는 스크립트도 한번 짜주실수 있으실지 부탁드려봅니다. 감사합니다. Gui,Add, Text, x30 y5 w110 h20, 매크로 프로그램 Gui,Add, Text, x60 y30 w50 h20 v횟수, 0회 Gui,Add, Edit, x48 y50 w50 h20 v제한, 0 Gui,Add, Button, x20 y80 w110 h20, 시작 Gui,Add, Button, x20 y110 w110 h20, 멈(w)춤 Gui,Add, Button, x20 y140 w110 h20, 종료 Gui, Show, ,매크로 매크로상태 :=false return Button시작: { 매크로상태 := true CoordMode,Mouse,Screen CoordMode,Pixel,Screen Gui,Submit,nohide Loop, %제한% { Click 967,298 GuiControl, ,횟수, %A_index% 회 Send,(w) sleep 100
@@뱅교수-x5e 우선 아래와 같이 사용하셔야 합니다. Send, w 그리고 구조가 원하시는 내용가 일치하지 않습니다. 강의를 꼼꼼히 보시고 좀 더 공부를 하셔야 할 것 같네요.^^ 간단하게 구조를 만들어드리면 반복문 { 1. 클릭 2. w 입력 반복문 { 이미지서치 } } 이런 구조로 만드셔야 됩니다.^^
귀한 지식 공유 해주셨어 진심으로 감사 합니다. GUI에 이미지 한개만을 불려놓고 마우스가 화면에서. 움직이다가 불러놓은 이미지를 만나면 클릭 하는 예제 하나 만들어 주셨으면 합니다.. ================================================== 다시 말씀 드리면 특정 게임에서 마우스가 특정위치에 가게되면 마우스의 포인터가 바뀌게 되는대요.. [이 마우스 포인터]그림을 GUI에 올려놓고 마우스가 움직이다가 ,,마우스 포인터가 바뀌게 될 때 클릭하는 예제가 필요합니다.
음...우선 말씀하신건 기초강의 내용을 다 이해하시면 쉽게 만들 수 있는 내용입니다. 그리고 예제가 필요하다는건 저에게 원하시는걸 만들어 달라는 것과 같은 말입니다. 제가 한분한분 질문에 왠만하면 도움을 드리려고 하지만 모두 대응해드릴 수 없는 부분 양해부탁드립니다.^^ 해당 내용에 힌트를 드리면 반복문 안에서 이미지서치를 통해 바뀌는 커서의 이미지를 찾고 이미지를 찾으면 클릭하도록 하시면 되구요. 한가지 의문이 제가 알기로 스크린샷으로 마우스 커서의 이미지는 캡쳐가 안되는 것으로 알고 있는데 이걸 해결할 방법이 있는지 찾아보셔야 할 것 같고, 이미지서치에 마우스 커서가 포함되는지도 알아보셔야 할 것 같습니다.^^
우선 if 에 괄호는 어디갔나요?? 저렇게 해서 작동이 되더라도 약속된 방법을 사용하시면 좋겠습니다. 그리고 이미지서치가 되는지 안되는지 어떻게 확인하나요? 지금은 그냥 변수에 값을 넣는 작업밖에 하지 않아 확인이 어려울 것 같네요. 이미지서치 후 ErrorLevel에 어떤값이 들어가는지 메세지박스 또는 디버그모드로 확인해보시고 0 또는 1이 나온다면 이미지서지 명령은 수행하는거고 다른 숫자가 나온다면 이미지 파일을 못불러 오는 경우입니다. 위 내용들을 바탕으로 확인해보시고 원인을 파악하시면 될 것 같습니다.
(참고로 저는 김재찬의 부캐입니다.)F8::SetTitleMatchMode, 2ImageSearch, id_x, id_y, 0, 0, A_ScreenWidth, A_ScreenHeight, *30 img\aaa.bmp if(errorlevel = 0) { id_x := id_y + 0 id_y := id_x + 0 MouseMove, %id_x%, %id_y% Click, 1 Click, 1 send, 1000000 send, {enter} sleep, 1000 } else { MsgBox, 원하는 그림을 찾지 못했습니다 }ImageSearch, a_x, b_y, 0, 0, A_screenwidth, A_screenHeight, *30 img\aaaa.bmp 라.bmp if(errorlevel = 0) { a_x := b_y + 0 b_y := a_x + 0 MouseMove, %a_x%, %b_y% click, 1 send, {enter} } else { MsgBox, 원하는 그림을 찾지 못했습니다 } return(c:\user ... 이런식으로도 해봤습니다. 하지만 안되더군요.)우선 어떤 스크립트냐 하면1번. img라는 파일에서 aaa.bmp를 찾고, 그에맞는 사진이 있으면 마우스로 그 사진을 따라가서 좌클릭을 두 번 한 후 100만원을 올리고 엔터를 누른다.(메이플스토리라는 게임에서 교환이라는 시스템이 있는데, 그 교환 시스템에서 돈을 주려면 우선 교환 시스템의 창에 돈을 올려야합니다. 교환 시스템의 창에 돈을 올리기 위해서는 올리는 버튼을 눌려야합니다. 그 버튼을 누르게끔 하는게 이겁니다.)2번. 사진을 못찾았을 경우 메시지 박스로, '원하는 그림을 찾지 못했습니다' 라고 뜨게한다.3번: img라는 파일에서 aaaa.bmp를 찾고, 그에맞는 사진이 있으면 마우스로 그 사진을 따라가서 클릭한후 엔터를한다.(돈을 올리고 나서도, 서로가 교환을 수락 하여야 교환이 성사가 됩니다. 그 교환 수락을 누르게끔 하는게 이겁니다.)4번: 사진을 못찾았을 경우 메시지 박스로, '원하는 그림을 찾지 못했습니다' 라고 뜨게한다.스크립트는 이정도입니다. 대체 뭐가 잘못됬고, 잘못된걸 수정하기 위해서 어떻게 해야할지, 왜 이미지를 인식을 못하는지, 또한 스크립트중 아쉬운부분이 있다면 피드백/조언 해주시면 정~말 감사하겠습니다.(킴영감님 유튜브채널 덕분에 유익한 정보 많이얻어가고 있습니다 ㅎㅎㅎㅎ 정말 감사합니다 !! (벌써 킴영감님 유튜브채널 챙겨보는게 취미가되버렸네요 ㅋㅋ.)킴영감님 유튜브채널 흥하세요 !!!
우선 게임이 활성화 된 상태에서 실행하셨나요? 만약 게임이 활성화 되어있지 않은 상태라면 이미지 서치가 되지 않습니다. 활성화되어있지 않아도 이미지서치를 하려면 CoordMode를 설정해주셔야하고 강의에서 알려드렸습니다. 두번째로 a_x := b_y + 0 b_y := a_x + 0 이 부분은 왜 필요한건지 모르겠네요 위와 같이 작성하면 a_x도 b_y의 값을 가지고 b_y도 b_y의 값을 가지게 됩니다. 만약 잘못사용하신거라면 변수에 대해 좀 더 공부하셔야 할 것 같습니다.
안녕하세요 블로그에서 보다가 유튜브로 넘어왔습니다 제가 원하는 스크립트는 던전 시작 - (도는중) - 클리어 - 보상 - 다시하기 {- (열쇠 없을시 충전) - 다시하기} 이렇습니다. 지금 { } 전 까지 만들어 봤는데 '클리어' 단계부터 작동하지 않습니다. 아랫분 질문이랑 비슷한거 같은데.. 던전 시작 후 도는 동안 클리어 이미지를 못찾아서 루프를 벗어나는거 같습니다. 이게 아니라 도는 동안 클리어 이미지를 찾게 해서 실제 1~2분 정도후에 클리어 화면을 찾아서 스크립트가 실행 되도록 하는 방법이 있을까요? Gui, add, text, x30 y5 w110 h20, 매크로 gui, add, text, x60 y25 w50 h20 vA, 준비 gui, add, text, x60 y50 h20 w50 vB, 0회 gui, add, button, x20 y80 w110 h20, 시작 gui, add, button, x20 y110 w110 h20, 종료 gui, show 매크로시작 := false return Button시작: { gui, submit, nohide guicontrol, , A, 시작
구조를 보니 강의 보신지 얼마 안되신 것 같네요.^^ 기초강의를 끝까지 보시면 원하시는 구조를 구현하실 수 있습니다. 흰트를 드리면 클리어이미지를 찾는 부분이 시작이미지를 찾았을 때에만 찾도록 되어있어 클리어 이미지를 못찾고 무한반복이 되는겁니다. 시작이미지를 찾는 부분과 클리어 이미지를 찾는 부분을 분리 하시면 됩니다.^^
답글을 달았다고 생각했는데 안달려있네요.ㅠ 이 강의에서 제가 혼동이 있어 잘못 알려드렸습니다.ㅠ 이부분은 볼때마다 확인이 필요하네요.ㅠ 이미지서치와 픽셀서치의 경우 끝점 좌표를 입력하는게 맞습니다.^^ 번외강의를 보시면 정확한 내용이 있어요~^^ 혼동을 드려 죄송합니다.ㅠ
음....프로그램은 정해진 순서대로 동작하니까 원하는 동작의 순서도를 한번 그려보시는게 좋을 것 같습니다. 전반적으로 말씀하신 내용과 다르게 작성되어 있네요^^ 만들어놓으신 프로그램이 어떤 순서로 동작하는지 얘기해볼게요 1. 듀티에 "day"가 들어가 있으면 오전 이미지를 찾음 2. 오전 이미지가 있으면 오전 이미지를 클릭하고 없으면 else로 넘어갑니다. 3. else에서 오전이미지를 찾고, 못찾았을 때 클릭을 하도록 되어있고 찾든 못찾든 키보드 UP 버튼을 누릅니다. 이부분이 문제인 것 같습니다. 결과적으로 오전 이미지를 찾든 못찾든 클릭을 하고 키보드 UP 버튼을 누르는 겁니다. (작성된 대로 잘 동작하는겁니다. 단지 잘못 만들어졌을 뿐이지요^^) 추가로 이미지를 못찾았을때 outx, outy를 클릭하도록 만들어 놓으셨는데 이미지를 못찾으면 클릭할 좌표가 없지 않을까요??^^ 그리고 숫자를 안치고 넘어간다는건 조금 확인이 필요한 문제일 것 같습니다. 우선 send와 send 사이에 1초정도 Sleep을 준 다음 확인해보시기 바랍니다. 만약 그래도 안된다면 문자가 입력되는 부분이 활성화 되어있는지 확인해보시면 될 것 같습니다. 문자입력하는게 아니라면 Sleep을 주면 동작할 것 같습니다. 제 생각에는 안되는 부분의 내용을 지우고 다시한번 차근차근 만들어보시는게 좋을 것 같습니다. 프로그래밍은 마음이 급할수록 더 안되는 분야입니다. 우선 강의 내용을 확실하게 이해하는 것이 중요하고, 내가 원하는 프로그램의 동작의 순서를 명확히 하는 것이 중요합니다. 그 뒤에는 정해진 순서에 따라 작성만 하면 됩니다. 이번 문제만 해결하시면 한단계 올라서실 수 있으니 화이팅입니다!^^
이 강의는 보기 많이 답답하시죠?
리뉴얼 버전의 새 강의가 있으니 이 강의 말고 리뉴얼 강의를 보세요~
재생목록 링크 - ruclips.net/p/PL--lMTarQb9muu1I1pQWEqMYrmDX7uWdI
실수해서 식은땀 흐른다는 부분 너무 귀여운거 같아요 ㅋㅋㅋㅋㅋ
이미지서치로 좋아요 누르는걸로 실습했습니다. 좋은 가르침 감사합니다 ^^
오늘도 재밌게 봤어요!
재미있게 보셨다니 뿌듯하네요~^^
강의 정독중 ㅎㅎ
어렵지만 끝까지 배우겠습니다
--- 띄어쓰기 잘해야 할듯 안그러면 이미지서치가 안되버림 ㅋ 참고하세요 ^0^
C:\Users\MY_PC\Image\집버튼.bmp
Gui, Add, Text, x30 y5 w110 h20, 매크로 프로그램
Gui, Add, Text, x60 y30 w50 h20 v횟수, 0 번
Gui, Add, Edit, x48 y50 w50 h20 v제한, 0
Gui, Add, Button, x20 y80 w110 h20, 시작
Gui, Add, Button, x20 y110 w110 h20, 멈춤
Gui, Add, Button, x20 y140 w110 h20, 종료
Gui, Show, , 매크로
매크로상태 := false
return
Button시작:
{
매크로상태 := true
CoordMode, Mouse, Screen
CoordMode, Pixel, Screen
Gui, Submit, nohide
Loop, %제한%
{
Click down 1190, 291
GuiControl, , 횟수, %A_Index% 회
Sleep, 3000
Click up 1190, 291
Sleep, 3000
ImageSearch, OutX, OutY, 0, 0, A_ScreenWidth, A_ScreenHeight, *30 Image\집버튼.bmp
if (ErrorLevel = 0)
{
Click %OutX%, %OutY%
Sleep, 3000
}
if(매크로상태 = false)
{
break
}
}
}
return
Button멈춤:
{
매크로상태 := false
}
return
Button종료:
{
ExitApp
}
return
GuiClose():
{
ExitApp
}
return
화이팅입니다!
If 를 써서 다릉 매크로도 만들어봤는데요
F1::
Loop
If GetKeyState("LButton") {
Sleep, 1
moveAmount := (moveAmount = 2) ? 3 : 0 mouseXY(moveAmount,2)
}
else
break
Return
mouseXY(x,y){ DllCall("mouse_event",int,1,int,x,int,y,uint,0,uint,0) }
이소스에서 전 f1를 한번 누르면 스크립트가 실행되 좌클릭을 누르면 마우스커서가 이동허게하고 다시 f1를 누르면 스크립트가 정지하게 하고싶은데
지금은 f1과 좌클릭을 함께 동시에 눌러랴 마우스 커서가 움직이네요 뭘잘못한거죠?
ㅜㅠ
팬입니다.~ 정주행중입니다. 그런데 영감님 만드신 게임을 예제처럼 따라하기 하려고 다운 받았다가 ...... 공부는 안하고 게임만 하고 있습니다. +_+;; 부작용인것인가.....그만 하고 예제 따라하기 해야 하는데. ... '좋아요' 누르고 갑니다.
제가 8강까지 보고 다시 두번째 보는중인데 막히는 부분이 있어서 이부분에서 진도가 안나갑니다 간절히 도움 청합니다.
ImageSearch,OutX,OutY,0,0,A_ScreenWidth,A_ScreenHeight,*20 C:\Users\pc\Desktop\image\집선택.bmp
if(ErrorLevel=0)
{
Click %OutX%, %OutY%
Sleep,3000
}
else
{
ImageSearch,OutX,OutY,0,0,A_ScreenWidth,A_ScreenHeight,*20 C:\Users\pc\Desktop\image\집버튼.bmp
if(ErrorLevel=0)
{
Click %OutX%, %OutY%
Sleep,3000
}
}
else
{
ImageSearch,OutX,OutY,0,0,A_ScreenWidth,A_ScreenHeight,*20 C:\Users\pc\Desktop\image\메인선택.bmp
if(ErrorLevel=0)
{
Click %OutX%, %OutY%
Sleep,3000
}
C:\Users\pc\Desktop\????\4? 2??? ???? ??.ahk (46) : ==> ELSE with no matching IF
이렇게 에러가 뜨는데요 어디가 틀린지 모르겠습니다.
답답하네요.. 도와주세요 ㅠㅠ
두번째 이미지서치에있는 if, else에 괄호 짝이 안맞네요^^
우와 드디어 됬네요 킴영감님 loop감사 합니다. 딱 열시간만에 됬습니다.포기 안하니까 되네요 .. 정말 감사합니다. 역시 나의 멘토 감사합니다...... %^^%
문제는 기본적인 것에서 발생활 확률이 높아요~ 포기하지 마시고 천천히 살펴보시면 됩니다~^^
넵 알겠습니다...*^^*
else if(조건)else 와 if 사이에 이미지를 추가 하고 싶다면 else if(조건) 으로 이미지 를 추가하면 된다고 하셨는데 똑같이 써봐도 else if(조건) 의 이미지는 서치를 못하더라구요여기서 괄호 안의 (조건) 에 한글로 조건이 아닌건가요? 완전 초보자 입니다.
조건은 한글로 조건이 아닙니다. 이미지서치 후 조건이 어떤식으로 표현되었는지 보시면 감이 오실겁니다.^^
옵션에서 오차값과 트랜스값을 같이 사용하고싶은데 그냥 둘다 적어주면 둘다 인식하는건가요? *50 *TransBlack 이런식으로 그냥 2개를 적어두면 둘다 인식하는지요? 아니면 둘중 하나만 들어가야하는지요?
둘다 옵션으로 작용합니다^^
감사합니다~!
제컴은 찾으라는 집은 안찾고 메인을 찾아주네요 ㅋㅋㅋ
킴영감 님 클릭드래그 말고,이미지 서치로 같은이미지 합치게 하는것도 가능한가요?
이미지서치 변수값 OutX, OutY가 이미지의 좌측최상단 값이라 하셨는데 만약 여기서 이미지서치를 하고 그이미지의 좌측최상단 지점보다 우측아래로 5픽셀만큼 이동해서 클릭하고 싶다면, 이미지서치 변수좌표값에 OutX5, OutY5 로 입력하는게 맞나요?
아니면, 위에 이미지서치값은 그대로두고 아래 스크립트 Click %Outx+5%, %OutY+5% 를 적는게 맞을까요?
이미지 찾아서 클릭하는 부분이 작동이 안됩니다...
이미지 경로와 확장자, 이름까지 정확한데요...ㅠㅠ
뭐가 문제인 지 모르겠네요
Gui, Add, Text, x30 y5 w200 h20, 매크로프로그램
Gui, Add, Text, x60 y30 w50 h20 v횟수, 0 회
Gui, Add, Edit, X48 Y50 W50 H20 v제한, 0
Gui, Add, Button, x20 y80 w200 h20, 시작
Gui, Add, Button, x20 y110 W200 h20, 멈춤
Gui, Add, Button, X20 Y140 W200 H20, 종료
Gui, show, , 매크로
매크로상태 := false
return
button시작:
{
매크로상태 := true
CoordMode, Mouse, Screen
CoordMode, Pixel, Screen
Gui, submit, nohide
Loop, %제한%
{
Click 600, 555
GuiControl, , 횟수, %A_Index%
sleep, 3000
ImageSearch, OutX, OutY, 0, 0, A_ScreenWidth, A_ScreenHeight, *30 C:\Users\DDPD\Desktop\image\1.bmp
if(ErrorLevel = 0)
{
click %OutX%, %OutY%
sleep, 3000
}
if(매크로상태 = false)
{
break
}
}
}
return
아 해결했네요. 노트북으로 해서 그런진 모르겠지만 *30 이부분의 숫자를 105까지 올리니 정상 작동을 하네요.
궁금한것이 있는데 만약 a 라는 이미지가 있따고 치면
그 a이미지가 나타났을때 원하는 버튼을 누르게할순없나요 이미지 a 를 누르는게아닌?
킴영감 선생님! 26분 정도부터, 그동안 같이 만들었던 오토핫키를 새폴더에 넣고 image 만들어서 하려고 했는데
standerror인지 missing인지 그렇게 하면서 F5가 작동을 안 하네요... 빨간 글씨로... 어떻게 해결해야 할까요?
혹시 지금도 답변을 달아주시는지 몰르지만 한번 남겨봅니다
else if 를 같이 사용해보려고 하는데 1번이미지를 못찾으면 else if 로 조건2번 이미지를 찾게 되서 그걸 종료 시키고 다시 1번 이미지를 눌러 3번으로 가려고 하는데 else를 쓰니깐 1번과 2번만 반복하더라구요 이럴땐 else if 를 또 써도 되는건가요??
이미를 찾았을때 제가 설정한 좌표를 클릭할수 있게 하는거는 다음 강의에 나오나요?? 해보고싶은데 예를들어 네이버 로고 이미지를 인식했을때 네이버 검색하는 창을 누를수 있게
쭉~ 보시면 원하시는 것 다 나올겁니다~
검색하는 창의 좌표를 알고있으면 이미지를 찾았을 때 검색창의 좌표를 클릭하도록 만들면 되겠네요^^
저도 보고 잘 배우고있는데요 저는 조금다르게
이미지를 인식해서 계속 클릭을 합니다
그런데 갑자기 다른이미지가 나와서 원래 누르던 이미를를 못누르게해요
그래서 갑자기 나온 이미지를 클릭할려고 해요 근데 그게 잘 안돼네요
그러니깐 제가 원하는건 원래 누르던거 계속 누르다가 다른이미지 나오면 그 다른 이미지 나온걸 누르고 하던 작업을 마저하고 싶은겁니다
근데 나오는 이미지는 일정하게 나옵니다
간절히 부탁합니다
제가 하고있는 스크립트 상황은 지금 이렇습니다
;mageSearch,OutputVarx,OutputVary,X1,Y1,X2,Y2imagefile
ImageSearch, pX,pY,0,0, A_ScreenWidth, A_ScreenHeight,*50 주사위 돌리기.bmp
if(errorlevel = 0){
pX += 90
pY += 20
Loop
MouseClick,l, %pX%, %pY%
여기서 뭘더 해야지 갑자기 나온 이미지를 클릭하고 하던 작업을 계속하게 할수잇을까요 원래누르는 이미지는 한개이고 갑자기 일정하게 출현 하는 이미지는 총 2개입니다
잘따라오다가 막히는 부분이 있어서 문의드립니다. 폴더 풀네임 안넣고 간략하게 보여주신거 처럼 앞부분 주소 자르고 image/집버튼.bmp 이렇게하면 집버튼 누르는게 작동이 안되네요...
주소 풀네임으로 이렇게 C:\Users\cick0\OneDrive\바탕 화면\image/집버튼.bmp 하니깐 누르네요..;
음...작업 경로가 다른 곳으로 설정되어있을 수 있을 것 같은데 확인해보시면 좋을 것 같습니다.^^
--- 띄어쓰기 잘해야 할듯 안그러면 이미지서치가 안되버림 ㅋ 참고하세요 ^0^
C:\Users\MY_PC\Image\집버튼.bmp
안녕하세요. 어렵지만 쉬운설명때문에 잘듣고있습니다.
바로적용해보는데 안돼서 질문드립니다.
제가 적용하려는 이미지서치가 하얀색바탕이여서 이미를 찾을수가없다고 합니다...
이미지서치를하는이유는 클릭해야하기 때문이고요
좌표로찾아서해야하나요...?
이미지를 배경이 포함 안되게 만드시면 되지 않을까요?
감사합니다!!!^^
컴뷰터게임할때 대부분이 키보드를 쓰잖아요? 그럼 키보드로 입력할수 있어요? 강의영상 올리신거 있으시면 링크좀 달아주세요
이미지서치랑 변수를 응용하려고하는데이미지를 찾았을때 OutX값의 범위에 따라 명령어를 다르게실행할수는없나연
x:: imageSearch, OutX, OutY, 0, 0, A_ScreenWidth, A_ScreenHeight, *30 C:\Users\user\Desktop\머야이거\ㅋ.png
if (ErrorLevel = 0)
{
if (OutX > 700)
{
msgbox, ㅋ
}return이렇게하니까 안돼는데
11:42 보고 그대로 따라했는데..
ImageSearch, A, B, 586, 331, 564, 589 *30 Images\a.bmp 뭐가 안되는걸까요..
좌표에 대한 내용이 잘못된 부분이 있습니다. 번외 강의를 보시면 될겁니다.^^
ruclips.net/video/gQwK26xTs80/видео.html
ImageSearch, FoundX, FoundY, 0,0, A_ScreenWidth, A_ScreenHeight, *30 %A_ScriptDir%\Image\해당하는 버튼이미지.bmp
그림판을 동영상보며 잘라서 bmp파일로 저장하였는데요.
저장한 파일 아이콘이 집이라는 글자른 잘라저장하였으면 아이콘표시가 동영상처럼 편집된 준자가 되지않고 일반 그림판아이콘으로밖에안됩니다
알씨도 깔아 연결프로그램을 바까도 똑같고요. 같은파일을 다른컴에서 테스트하니 문제가 없는데요
아무리검색을 해봐도 모르겠어서 댓글 남깁니다 도와주세요ㅠ
blog.naver.com/wkdakswls5977?Redirect=Update&cpage=1&sourceCode=0&logNo=221281504754 질문설명이 부족한듯 하여 링크로 사진상으로 올려두엇어요 도움부탁드려요
blog.naver.com/wkdakswls5977/221281504754 링크가 잘못되서요
support.microsoft.com/ko-kr/help/2526440 해결하였습니다
< 캡쳐 방법 > 여기서 활성화=선택되어 있는상태를 뜻함 !!
캡쳐할 창을 활성화시켜서 Alt 키 + 프린트스크린 키 눌러줌 (캡쳐됨),
그림판열어 확대를 12.5%로 해주고, 그림판 모서리잡고 늘려준후에 Ctrl 키 + V 키 눌러(붙이기),
그림판다시 확대시켜 원하는부분자르기해서 bmp24비트 로 저장 해주고,
그림판에서 Ctrl 키 + Z 키 누르면 되돌리기되서 자르기전 원본이미지가 다시 살아남
거기서 또다른부분을 위 방법처럼 반복해서 원하는만큼 자르기작업 해주면 캡쳐작업이 끝남 ^0^
버튼 클릭할떄 타이머가 있을때 몇강보면 처리 할수있을까요?? 이미지 서치 할떄 움직이는 케릭터는 설정이 안되는건가요?처음에 클릭안하고 바로 이미지 서치로 설정은..
버튼 클릭할때 타이머가 있을때는 무슨 말인지...^^
움직이는 이미지는 이미지서치로 사용하기 부적절합니다.^^
앱플레이어의 이미지를 캡쳐하여 이미지 서치를 이용하여 이미지를 찾았습니다. 근데 문제는 앱플레리어의 사이즈를 변경하면 전에 이미지 캡쳐한 걸로는 이미지를 찾을 수가 없는데 일일이 다 캡쳐해서 찾아야 하는건지 아니면 다른 방법이 있는 건 지 궁금합니다.
캡쳐할때 화면크기로 해야지만 이미지를 찾습니다.
버튼을 3개정도 눌러야하는데 그 버튼 3개가 다 다르거든요 그래서 이미지서치를 3개를 넣으려고하는데 시작버튼 안에다가 똑같이 2개 더 만들면 되나요?
안녕하세요 잘배우고 있는 학생입니다. 문제있어서 이렇게 댓글을 남김니다.
영상보고 응용해보려고 합니다. 1~4 번 이미지까지 이미지중 인식되는 이미지만을 불러오고 싶습니다.
if - else if - else 사용해보려고합니다.
제가사용하는 코드중 뭐가 문제인지 모르겠습니다.
지금 사용하는 코드사용하니까 1~4번 이미지 전부 찾네요 ㅠㅠ
else if 에서 문제가있는듯 보입니다. 하단 else if 적힌 줄이 빨간색으로 써져있네요
매크로상태 := true
CoordMode, mouse, screen
CoordMode, Pixel, screen
gui, submit, nohide
Loop, %제한%
{
Click Down 385, 788
Sleep 1000
Click up 342, 806
Sleep 250
Click 1720, 203
Sleep 1000
GuiControl, , 횟수, %a_index% 회
ImageSearch, OutX, OutY, 0, 0, A_ScreenWidth, A_ScreenHeight, *50 image\op.bmp
if (ErrorLevel = 0)
{
Click %OutX%, %OutY%
sleep, 1000
}
ImageSearch, OutX, OutY, 0, 0, A_ScreenWidth, A_ScreenHeight, *50 image\int.bmp
if (ErrorLevel = 0)
{
Click %OutX%, %OutY%
sleep, 1000
}
ImageSearch, OutX, OutY, 0, 0, A_ScreenWidth, A_ScreenHeight, *50 image\dex.bmp
if (ErrorLevel = 0)
{
Click %OutX%, %OutY%
sleep, 1000
}
else if (ErrorLevel = 0)
ImageSearch, OutX, OutY, 0, 0, A_ScreenWidth, A_ScreenHeight, *50 image\jk.bmp
{
Click %OutX%, %OutY%
sleep, 1000
}
else
{
ImageSearch, OutX, OutY, 0, 0, A_ScreenWidth, A_ScreenHeight, *50 image\op.bmp
if (ErrorLevel = 0)
{
Click %OutX%, %OutY%
sleep, 1000
}
}
if(매크로상태 = false)
{
break
}
}
}
return
이 글을 보신다면 답변해주시면 감사하겠습니다
질문이 있습니다.이미지 서치해서 원하는 방향(다른 프로그램 체크박스)으로 마우스가 가는데 다음 명령어인 클릭해서 체크가 안돼는데 어케해야 되는지요 ㅠㅠ 이 프로그램 말고 다른 프로그램은 실행 잘되는데 이 프로그램은 클릭해도 활성화 자체가 안돼네요 ㅠㅠ
간혹 그런 경우가 있었던 것 같습니다.ㅠ
클릭을 하기 전에 WinActivate 명령어를 사용해서 해당 프로그램을 활성화시키시면 될 것 같습니다.
WinActivate 명령어는 아래와 같이 사용하시면 됩니다.
WinActivate, 윈도우타이틀
그러면 하나 질문할게 있습니다 만약 1번 이미지 서치를 성공했을때 이어서 제가 지정한 위치로 이동시키고, 1번 이미지서치를 성공을 못할시에 지정한 위치로 이동못시키는 그런 방법은 없을까요
지정한 위치로 이미지를 이동시킨다는 건가요?
@@elderlykim 아아 MouseMove를 이용한 이동이요. 조금 연구하다보니 If 에러레벨1 넣고 조금 조정해주니 잘되네요
감사합니다
서치 문법중 left, top, width, height 가 있는데 여기서 width, height 가 아니라 x축 y축 끝좌표 아닌가요? 즉 40,20 이 아니라 60,30이 되어야 하는거 아닌가요..
결론은 제가 잘못 설명한겁니다...^^강의 이어서 보시다보면 내용이 있습니다.^^
여기서 loop만 빼면 작동이 잘 되는데 뭐가 잘못된걸까요 ㅜㅜ
loop 뒤에 %제한%말고 숫자를 넣어도 동작이 됩니다 ㅠㅠ
Gui, add, text, x30 y5 w110 h20, 매크로
gui, add, edit, x30 y50 w110 h20 v제한, 0
gui, add, button, x30 y80 w110 h20, 시작
gui, add, button, x30 y110 w110 h20, 종료
gui, show, ,매크로
return
button시작:
{
CoordMode, mouse, screen
loop, %제한%
{
click 10, 10
sleep 1000
}
}
return
스크립트는 잘 작성하신 것 같은데 이상하네요ㅠㅠ
혹시 edit 에 값은 넣어주셨나요??
제가 강의를 놓쳤나봐요 ㅜㅜ edit의 값이 뭔가요??
GUI상에 0 적혀있는 부분이요~
@@elderlykim 네 ㅠㅠㅠ 1번째로 킴영감님 강좌랑 똑같이 만든건 loop 작동이 잘 되는데 제가 만든것만 안되네요 ㅠㅠ 새로 하나 더 만들어봐야겠어요 ㅜㅜ
힘내세요.ㅠ
>"C:\Program Files\AutoHotkey\AutoHotkey.exe" /ErrorStdOut "C:\Users\Owner\Desktop\연습\2.ahk"
하단에 이런게 뜹니다. 그리고 실행을 하면 마우스가 꼼짝을 안해요.
여기에 막혀 몇일때 진도가 안나갑니다. 도와주세요
Gui, Add, Text, x30 y5 w110 h20, 매크로 프로그램
Gui, Add, Text, x60 y30 w50 h20 v횟수, 0 회
Gui, Add, Edit, x48 y50 w50 h20 v제한, 0
Gui, Add, Button, x20 y80 w110 h20, 시작
Gui, Add, Button, x20 y110 w110 h20, 멈춤
Gui, Add, Button, x20 y140 w110 h20, 종료
Gui, Show, , 매크로
매크로상태 := false
return
Button시작:
{
매크로상태 := true
CoordMode, Mouse, Screen
CoordMode, Pixel, Screen
Gui, Submit, nohide
Loop, %제한%
{
ImageSearch, OutX, OutY, 0, 0, A_ScreenWidth, A_ScreenHeight, *30 %A_ScriptDir%\Image\1.bmp
if (ErrorLevel = 0)
{
click %OuxX%, %OutY%
sleep 4000
}
if(매크로상태 = false)
{
break
}
}
}
return
Button멈춤:
{
매크로상태 := false
}
return
Button종료:
{
ExitApp
}
return
GuiClose:
{
ExitApp
}
return
해당 에러 아래줄에 추가적인 에러 내용이 안뜨나요?
만약 추가적인 에러 내용이 안뜨고 실행까지는 잘 된다면 이미지를 못찾는 것 같습니다.
메 이미지를 못찾는것 같아요
그래서 오토핫키 깔린곳이랑 이미지 다 복사에서 옴겨두고해도 안되고
이미지 주소를 자동이랑 직접설정 다햅ㅘ도 안되네요
오토핫키 설치된 폴더는 건드리시면 안됩니다.ㅠ
음... 우선 뭐가 문제인지를 확인하는게 제일 우선입니다.
아래 링크로 가셔서 디버깅 강의를 보시고 디버그모드로 이미지서치 아래의 ErrorLevel에 어떤 값이 들어가는지를 확인하는게 좋을 것 같습니다.^^
ruclips.net/video/Roa28l5wRiA/видео.html
그런데 혹시 Edit에 1 이상의 값을 입력해 주셨나요??
이미지 서치로 랜덤 이미지 숫자를 똑같이 칠 수 있는 방법 있나요??
오토핫키 사용중 한글키 사용시 자꾸 깨져서 보이는데 옵션에 설정하는 방법이 따로 있나요?
이미지 서치해서 사용된 이미지 파일 이름을 send명령으로 치게할수 있는 방법 있나요
소중한 영상 정말 잘보고 있습니다 항상 보면서 감사드립니다. 막히는부분이있어서 질문드립니다.
coordMode, pixel, Screen
ImageSearch, Outx, Outy,0,0,A_ScreenWidth, A_ScreenHeight, *30 image\1.bmp
if (ErrorLevel = 0)
{
ImageSearch, Outx, Outy,0,0,A_ScreenWidth, A_ScreenHeight, *30 image\2.bmp
if (ErrorLevel = 0)
{
Click %Outx%, %Outy%
Sleep, 3000
}
}
1번을 못찾으면 2번을 찾지않고 건너뛰고 Loop가 있을시에 1번으로 되돌아가서 1번을 찾는다고 하셨는데요.
이 예제대로 하면 안되서요.
제가 작성한대로하면 1번을 못찾으면 바로 2번 이미지를 찾더라구요 2번을 찾지 않고 1번을 다시 찾으러 가야되는데.
미안하지만 조건문 응용시 else if(조건2) 조건2에 들어가는 조건문은 어떤게 있을까요 설명서 봐도 잘모르겟네요.
어떤 형식으로 가는지 설명 가능하시면 감사하겟습니다~!
혹시 따로 수강료받고 강의는 안하시는지요 ㅜ 영단어도 모르고 독학 하려니 막히면 쉽게 뚤리질 않네요 ㅠ
ErrorLevel 스펠링이 틀리셨네요...^^
수강료 받고 강의하는건 고려하고 있습니다. 하지만 지역이 같지 않다면 비용상 1:1은 어려운 현실입니다.ㅠ 특강 형식으로 생각은 하고 있는데 언제가 될지는 모르구요...^^
스펠링을잘못썻네요 스크립트상은 정상입니다 ㅜ 와 계속 기다리고 있었습니다
오시니까 반갑네요 저렇게 작성 한경우에 2번을 안찾고 다시 1번을 찾게 하려면 어떻게 해야되나요
필요한 부분이라 꼭 알고 넘어가면 다음 단계이해하기가 쉬울거 같아서요.
부탁드립니다!
1번을 못찾으면 2번으로 넘어가지않고 건너뛰어서 다시1번을 다시 찾으러 돌아가는것만 알수 있으면 좋겟어요
coordMode, pixel, Screen
ImageSearch, Outx, Outy,0,0,A_ScreenWidth, A_ScreenHeight, *30 image\1.bmp
if (ErrorLevel = 0)
{
ImageSearch, Outx, Outy,0,0,A_ScreenWidth, A_ScreenHeight, *30 image\2.bmp
if (ErrorLevel = 0)
{
Click %Outx%, %Outy%
Sleep, 3000
}
}
1번을 못찾으면 2번을 찾지않고 건너뛰고 Loop가 있을시에 1번으로 되돌아가서 1번을 찾는다고 하셨는데요.
이 예제대로 하면 안되서요.
제가 작성한대로하면 1번을 못찾으면 바로 2번 이미지를 찾더라구요 2번을 찾지 않고 1번을 다시 찾으러 가야되는데.
영감님 영상 잘봤습니다! 근데 이미지를 찾아서 원클릭 말고 더블클릭 을 하고싶을땐 어떻게 하나요? 여러군데 돌아다녀서 찾아봐도 안되네요..;;
다양한 방법이 있지만 Click를 두번 연속해서 하시면 될 것 같습니다.
다른 방법은 MouseMove를 사용해 마우스를 이동시킨다음 Click 2 를 하시면 더블클릭을 합니다.^^
이미지서치할때 있는 해당 이미지 위치가 위면 해당이미지의 아래쪽을 잡고 해당이미지의 위치가 밑이면 해당이미지의 위를잡는 현상이있는데 왜이럴까요?
확인해보니까 화면 해상도를 1920 으로 안하면 안되는데 다른해상도에서도 가능한방법이 없을까요?
해결했습니다~~!!
이 강좌를 참고하여 인터넷 창에다가 응용하여 테스트를 해보았습니다.
허나 시작을 누르니 아무런 반응이 없습니다..
이미지는 파일화 하여 같은폴더에 저장하여놨으며 이미지를 인식 못하는것같습니다..
아니면 코딩에서 잘못된점이 있을까요? ㅎㅎ
매도이미지 서칭 후 수량 이미지 까지 터치하는걸 구현하려고 합니다.ㅎㅎ
Gui, Add, Text, x30 y5 w110 h600, 매크로 프로그램
Gui, Add, Text, x60 y30 w50 h20 v횟수, 0 회
Gui, Add, Edit, x48 y50 w50 h20 v제한, 0
Gui, Add, Button, x20 y80 w110 h20, 시작
Gui, Add, Button, x20 y110 w110 h20, 멈춤
Gui, Add, Button, x20 y140 w110 h20, 종료
Gui, Show, , 매크로
매크로상태 := false
return
Button시작:
{
매크로상태 := true
CoordMode, Mouse, Screen
CoordMode, Pixel, Screen
Gui, Submit, nohide
Loop, %제한%
{
ImageSearch, OutX, OutY, 0, 0, A_ScreenWidth, A_ScreenHeight, *30 이미지\매도1.bmp
if (ErrorLevel = 0)
{
click %OuxX%, %OutY%
sleep 400
}
ImageSearch, OutX, OutY, 0, 0, A_ScreenWidth, A_ScreenHeight, *30 이미지\수량.bmp
if (ErrorLevel = 0)
{
click %OuxX%, %OutY%
sleep 400
}
if(매크로상태 = false)
{
break
}
}
}
return
Button멈춤:
{
매크로상태 := false
}
return
Button종료:
{
ExitApp
}
return
GuiClose:
{
ExitApp
}
return
스크립트에 문제는 없어보이네요. 혹시 제한값을 0으로 두고 실행하신건 아니죠? 그게 아니라면 이미지가 문제인 경우 외에는 생각할 수 있는게 없네요.ㅠ
ㅣㅣ0
이미지서치 에서 막혀서 1강부터 다시 봐도 봐도 안되네요..ImageSearch, Outx, OutY, 0, 0, A_ScreenWiadth, A_ScreenHeight, *30 Image\ 화살표.bmp
if (ErrorLeve1 = 1)
{
Click %OutX% %OutY%
Sleep, 2000
} 제가 틀린건가여??
틀리셨네요^^
A_ScreenWidth 를 잘못적으셨구요~
ErrorLevel이 1일때는 이미지를 못찾은겁니다.^^
찾았습니다 a 추가 된거 외에 도저히 안되서 ErrorLevel1 = 0 으로 메세지 박스 넣어서 몬찾았다인식안된다찾았다 의미을 3개 넣어서 했더니 파일은 찾았는데 왜 안되는게.. 밑에 스크립에 클릭버튼이 없었더라구여....... ㅠㅠㅠㅠ
5강 픽셀에 메세지 박스 강의 아니였으면 몬찾았어여 ㅠㅠ 미리보기 해도 도움이 많이 되었네여
@@오용환-u4o 찾으셨다니 다행입니다~!!
이미지서치는 정상적으로 다 되는데 이걸 실전에서 사용하려고하면
제가 그림판으로 딴 정확히 그 이미지만 적용되고 그와 엇비슷한 이미지에는 반응을 하질 않네요
*30 값을 50 80으로 올려도 그대로인데. 원래 이런건가요?
원래 그런겁니다. 원칙적으로 조금이라도 다른이미지면 찾지 않는게 맞습니다.^^
킴영감
조금정도는 화질이 달라도 괜찮겠죠?
화질은 원본이랑 관계없이 디스플레이 장치에 따라 변하는거라 상관없습니다.^^
오 그런가요ㅋㅋ 강의내용도 그렇고 좋은거 많이 알아가네요 감사합니다
녹스창에서는 클릭키가 안먹는데 막힌건가요?? 바탕화면 창에서는 클릭이랑 클릭다운이 먹히는데 녹스창에는 안먹히네요
좌표를 잘못 주셨을 것 같은데요?
블루스택은 되는데 녹스는 안되네요ㅠㅠ 확인한번 부탁드립니다
녹스에서 테스트하신 스크립트를 보여주시면 봐드릴게요~^^
이미지 서치 작업중 문의 드립니다.
게임상 화면에 마우스 좌표로클릭 후 W 입력, 이미지 서치 후 찾았을 경우 W 바로 입력 매크로를 만들고 있습니다
해당 마우스 좌표에서 W까지 사용은 되었으나 랜덤 시간으로 해당 이미지가 나타나게 됩니다.(약3~5초사이)
그리고 이미지서치 후 다시 W 입력하는것은 안되옵니다. 한번 손봐주십시요 ㅠㅠㅠㅠ
추가로 이미지 서치 때 해당 A라는 이미지가 발견되면 한 10초후에 다시 처음으로 가는 스크립트도 한번 짜주실수 있으실지
부탁드려봅니다. 감사합니다.
Gui,Add, Text, x30 y5 w110 h20, 매크로 프로그램
Gui,Add, Text, x60 y30 w50 h20 v횟수, 0회
Gui,Add, Edit, x48 y50 w50 h20 v제한, 0
Gui,Add, Button, x20 y80 w110 h20, 시작
Gui,Add, Button, x20 y110 w110 h20, 멈(w)춤
Gui,Add, Button, x20 y140 w110 h20, 종료
Gui, Show, ,매크로
매크로상태 :=false
return
Button시작:
{
매크로상태 := true
CoordMode,Mouse,Screen
CoordMode,Pixel,Screen
Gui,Submit,nohide
Loop, %제한%
{
Click 967,298
GuiControl, ,횟수, %A_index% 회
Send,(w)
sleep 100
ImageSearch, OutX, OutY, 0, 0, A_ScreenWidth, A_ScreenHeight, *50 \이미지\체크.bmp
if (ErrorLevel = 0)
{
send, (w)%outx%,%outy%
}
if(매크로상태 = false)
{
break
}
return
Button멈춤:
{
매크로상태:= false
}
return
Button종료:
{
ExitApp
}
return
}
}
send, (w)%outx%,%outy%
이건 어디서 보시고 이렇게 사용하신 건가요?
@@elderlykim 혼자 공부하다가;;; 써봤어요
@@뱅교수-x5e 우선 아래와 같이 사용하셔야 합니다.
Send, w
그리고 구조가 원하시는 내용가 일치하지 않습니다.
강의를 꼼꼼히 보시고 좀 더 공부를 하셔야 할 것 같네요.^^
간단하게 구조를 만들어드리면
반복문
{
1. 클릭
2. w 입력
반복문
{
이미지서치
}
}
이런 구조로 만드셔야 됩니다.^^
혹시 이미지의 크기가 원래의 시작보다 더 커지거나 작아진다면 그 이미지를 못찾나요??
약간의 여유는 있지만 못찾는다고 생각하시는게 좋을 것 같습니다~ 완전히 동일해야 한다고 생각하시면 됩니다.^^
몬스터가 죽고 시체가 생길경우 시체를 클릭하지않았으면 좋겠는데방법있나요?ㅠ
고생이 많으십니다..ㅎㅎ 죄송한데... 카톡아이디좀 알려주실수 있으신가요.?
죄송합니다. 카톡아이디는 알려드릴 수 없습니다.^^
킴영감 아 넵 ㅎㅎ
최신 기초는 다봤는데 혹시 이건 1~3강못보던데 볼수있는법 없을까요?
리뉴얼 강의와 내용이 겹치는 부분이라 지워놨었습니다.
다시 열어놨으니 보시면 됩니다.^^
져 궁금한게 있는데요 if안에 if가 다량으로 들어가도 상관이 없나요?
1번 조건이 맞을때에만 추가조건들을 여러가지 넣고싶어서 그래요
넵~원하시는만큼 제한없이 넣으실 수 있습니다^^
혹시 비활성으로는 어떻게 만드나요?
EKMLib 강의 보시면 됩니다~^^
혹시 매크로 만드는 방법를 모르면 먼저 배우고 하는게 좋겠죠?
넵~ 당연히 그게 맞습니다~ 프로그래밍을 해보신 분이라면 바로 EKMLib 강의를 보시면 되고 아니라면 기초강의를 보셔야되요~^^
귀한 지식 공유 해주셨어 진심으로 감사 합니다.
GUI에 이미지 한개만을 불려놓고 마우스가 화면에서.
움직이다가 불러놓은 이미지를 만나면 클릭 하는 예제
하나 만들어 주셨으면 합니다..
==================================================
다시 말씀 드리면 특정 게임에서 마우스가 특정위치에 가게되면
마우스의 포인터가 바뀌게 되는대요.. [이 마우스 포인터]그림을
GUI에 올려놓고 마우스가 움직이다가 ,,마우스 포인터가 바뀌게
될 때 클릭하는 예제가 필요합니다.
음...우선 말씀하신건 기초강의 내용을 다 이해하시면 쉽게 만들 수 있는 내용입니다.
그리고 예제가 필요하다는건 저에게 원하시는걸 만들어 달라는 것과 같은 말입니다.
제가 한분한분 질문에 왠만하면 도움을 드리려고 하지만 모두 대응해드릴 수 없는 부분 양해부탁드립니다.^^
해당 내용에 힌트를 드리면 반복문 안에서 이미지서치를 통해 바뀌는 커서의 이미지를 찾고 이미지를 찾으면 클릭하도록 하시면 되구요.
한가지 의문이 제가 알기로 스크린샷으로 마우스 커서의 이미지는 캡쳐가 안되는 것으로 알고 있는데 이걸 해결할 방법이 있는지 찾아보셔야 할 것 같고, 이미지서치에 마우스 커서가 포함되는지도 알아보셔야 할 것 같습니다.^^
이미지를 찾았을때 다른이미지를 클릭하는 방법이 있을까요? 그리고 클릭하는 사진의 좌표를 지정해서 그부분만 클릭할수가 있을까요?(클릭해야 하는곳이 랜덤으로 나오고 클릭하려는것이 다 같은모양이기 때문입니다)
이미지서치의 범위를 설정해주시면 되고 응용이라서 구현할 수 있는 방법이 다양하고 기본적인 프로그래밍을 할 줄 아셔야 적용가능하실겁니다.
F1::
{
Gosub, Line
SetTimer, LoopID, On
SetTimer, Mode, On
NumberPost:=List6
If(NumberPost="0초")
{
SetTimer, Attack, 100
}
If(NumberPost="1초")
{
SetTimer, Attack, 1100
}
}
Return
Line:
Loop
{
CoordMode, pixel, Screen
Coordmode, mouse, Screen
wingetpos, wX, wY, wWidth, wHeight, Legend of Darkness v10270
ex := wX + wWidth
ey := wY + wHeight
ImageSearch, LineX, LineY, wX, wY, ex, ey, %A_WorkingDir%\Image\A\Line.bmp
If ErrorLevel=0
{
AX:=LineX
AY:=LineY
LineXY=1
PosMe:=310|160
우선 if 에 괄호는 어디갔나요?? 저렇게 해서 작동이 되더라도 약속된 방법을 사용하시면 좋겠습니다.
그리고 이미지서치가 되는지 안되는지 어떻게 확인하나요?
지금은 그냥 변수에 값을 넣는 작업밖에 하지 않아 확인이 어려울 것 같네요.
이미지서치 후 ErrorLevel에 어떤값이 들어가는지 메세지박스 또는 디버그모드로 확인해보시고 0 또는 1이 나온다면 이미지서지 명령은 수행하는거고 다른 숫자가 나온다면 이미지 파일을 못불러 오는 경우입니다.
위 내용들을 바탕으로 확인해보시고 원인을 파악하시면 될 것 같습니다.
이미지를 인식을 못합니다 ㅠㅠ 어캐해야할까요
어떻게 안되는지 알아야 어떻게 해야되는지 알려드릴 수 있지 않을까요?^^
이미지 찾을경우 마우스 따라가는걸로 설정했고, 이미지 찾지못했을경우 찾지못했습니다 메시지박스 뜨게했는데 계속 찾질못하고 찾지못했습니다 뜨네요
이미지서치부분 스크립트를 보여주실 수 있으신가요?
(참고로 저는 김재찬의 부캐입니다.)F8::SetTitleMatchMode, 2ImageSearch, id_x, id_y, 0, 0, A_ScreenWidth, A_ScreenHeight, *30 img\aaa.bmp
if(errorlevel = 0)
{
id_x := id_y + 0
id_y := id_x + 0
MouseMove, %id_x%, %id_y%
Click, 1
Click, 1
send, 1000000
send, {enter}
sleep, 1000
}
else
{
MsgBox, 원하는 그림을 찾지 못했습니다
}ImageSearch, a_x, b_y, 0, 0, A_screenwidth, A_screenHeight, *30 img\aaaa.bmp
라.bmp
if(errorlevel = 0)
{
a_x := b_y + 0
b_y := a_x + 0
MouseMove, %a_x%, %b_y%
click, 1
send, {enter}
}
else
{
MsgBox, 원하는 그림을 찾지 못했습니다
}
return(c:\user ... 이런식으로도 해봤습니다. 하지만 안되더군요.)우선 어떤 스크립트냐 하면1번. img라는 파일에서 aaa.bmp를 찾고, 그에맞는 사진이 있으면 마우스로 그 사진을 따라가서 좌클릭을 두 번 한 후 100만원을 올리고 엔터를 누른다.(메이플스토리라는 게임에서 교환이라는 시스템이 있는데, 그 교환 시스템에서 돈을 주려면 우선 교환 시스템의 창에 돈을 올려야합니다. 교환 시스템의 창에 돈을 올리기 위해서는 올리는 버튼을 눌려야합니다. 그 버튼을 누르게끔 하는게 이겁니다.)2번. 사진을 못찾았을 경우 메시지 박스로, '원하는 그림을 찾지 못했습니다' 라고 뜨게한다.3번: img라는 파일에서 aaaa.bmp를 찾고, 그에맞는 사진이 있으면 마우스로 그 사진을 따라가서 클릭한후 엔터를한다.(돈을 올리고 나서도, 서로가 교환을 수락 하여야 교환이 성사가 됩니다. 그 교환 수락을 누르게끔 하는게 이겁니다.)4번: 사진을 못찾았을 경우 메시지 박스로, '원하는 그림을 찾지 못했습니다' 라고 뜨게한다.스크립트는 이정도입니다. 대체 뭐가 잘못됬고, 잘못된걸 수정하기 위해서 어떻게 해야할지, 왜 이미지를 인식을 못하는지, 또한 스크립트중 아쉬운부분이 있다면 피드백/조언 해주시면 정~말 감사하겠습니다.(킴영감님 유튜브채널 덕분에 유익한 정보 많이얻어가고 있습니다 ㅎㅎㅎㅎ 정말 감사합니다 !! (벌써 킴영감님 유튜브채널 챙겨보는게 취미가되버렸네요 ㅋㅋ.)킴영감님 유튜브채널 흥하세요 !!!
우선 게임이 활성화 된 상태에서 실행하셨나요?
만약 게임이 활성화 되어있지 않은 상태라면 이미지 서치가 되지 않습니다.
활성화되어있지 않아도 이미지서치를 하려면 CoordMode를 설정해주셔야하고 강의에서 알려드렸습니다.
두번째로
a_x := b_y + 0
b_y := a_x + 0
이 부분은 왜 필요한건지 모르겠네요
위와 같이 작성하면 a_x도 b_y의 값을 가지고 b_y도 b_y의 값을 가지게 됩니다.
만약 잘못사용하신거라면 변수에 대해 좀 더 공부하셔야 할 것 같습니다.
안녕하세요 블로그에서 보다가 유튜브로 넘어왔습니다
제가 원하는 스크립트는
던전 시작 - (도는중) - 클리어 - 보상 - 다시하기 {- (열쇠 없을시 충전) - 다시하기}
이렇습니다.
지금 { } 전 까지 만들어 봤는데 '클리어' 단계부터 작동하지 않습니다.
아랫분 질문이랑 비슷한거 같은데..
던전 시작 후 도는 동안 클리어 이미지를 못찾아서 루프를 벗어나는거 같습니다.
이게 아니라 도는 동안 클리어 이미지를 찾게 해서 실제 1~2분 정도후에 클리어 화면을 찾아서 스크립트가 실행 되도록 하는 방법이 있을까요?
Gui, add, text, x30 y5 w110 h20, 매크로
gui, add, text, x60 y25 w50 h20 vA, 준비
gui, add, text, x60 y50 h20 w50 vB, 0회
gui, add, button, x20 y80 w110 h20, 시작
gui, add, button, x20 y110 w110 h20, 종료
gui, show
매크로시작 := false
return
Button시작:
{
gui, submit, nohide
guicontrol, , A, 시작
매크로시작 := true
클리어횟수 := 0
Loop
{
imageSearch, foundX, foundY, 0, 0, A_ScreenWidth, A_ScreenHeight, *50 %A_ScriptDir%\image\start.bmp
if(ErrorLevel = 0)
{
random, x, 428, 532
random, y, 255, 301
MouseClick, left, x, y
random, sleeptime, 1000, 2000
sleep, sleeptime
imageSearch, foundX, foundY, 0, 0, A_ScreenWidth, A_ScreenHeight, *50 %A_ScriptDir%\image\clear.bmp
if(Errorlevel = 0)
{
random, x, 5, 565
random, y, 73, 375
MouseClick, left, x, y
random, sleeptime, 1000, 2000
MouseClick, left, x, y
random, sleeptime, 1000, 2000
sleep, sleeptime
imageSearch, foundX, foundY, 0, 0, A_ScreenWidth, A_ScreenHeight, *50 %A_ScriptDir%\image
are.bmp
if(Errorlevel = 0)
{
random, x, 195, 272
random, y, 296, 330
MouseClick, left, x, y
random, sleeptime, 1000, 2000
sleep, sleeptime
random, x, 193, 270
random, y, 228, 260
MouseClick, left, x, y
random, sleeptime, 1000, 2000
sleep, sleeptime
imageSearch, foundX, foundY, 0, 0, A_ScreenWidth, A_ScreenHeight, *50 %A_ScriptDir%\image
estart.bmp
if(Errorlevel = 0)
{
random, x, 84, 266
random, y, 202, 242
MouseClick, left, x, y
random, sleeptime, 1000, 2000
sleep, sleeptime
}
}
else
{
imageSearch, foundX, foundY, 0, 0, A_ScreenWidth, A_ScreenHeight, *50 %A_ScriptDir%\image\get.bmp
if(Errorlevel = 0)
{
random, x, 298, 375
random, y, 297, 329
MouseClick, left, x, y
random, sleeptime, 1000, 2000
sleep, sleeptime
}
}
}
클리어횟수 := 클리어횟수 + 1
gui, submit, nohide
guicontrol, , B, %클리어횟수% 회
}
if(매크로시작 = false)
{
break
}
}
}
return
Button종료:
{
매크로시작 := false
ExitApp
}
return
제가 지금까지 작성한 스크립트입니다.
구조를 보니 강의 보신지 얼마 안되신 것 같네요.^^
기초강의를 끝까지 보시면 원하시는 구조를 구현하실 수 있습니다.
흰트를 드리면 클리어이미지를 찾는 부분이 시작이미지를 찾았을 때에만 찾도록 되어있어 클리어 이미지를 못찾고 무한반복이 되는겁니다. 시작이미지를 찾는 부분과 클리어 이미지를 찾는 부분을 분리 하시면 됩니다.^^
킴영감 넵 2일 전부터 블로그 보면서 시작했어요
힌트 감사합니당 주말동안 생각 좀더 해보고 안되면 댓글 다시 달도록 하겟슴니다~ 좋은주말 보내세용 ㅎㅎ
원하시는 내용이 유튜브 강의 막바지에 있어요~^^ 차근차근 보시면서 따라하시면 금방 구현하실 수 있을거에요^^
ㅠㅠ 영상도 돌려보고 생각도 좀 해봤는데.. 시작이미지를 찾는 부분과 클리어 이미지를 찾는 부분을 분리 하라는 말씀을 잘 모르겠어요..
imageSearch, foundX, foundY, 0, 0, A_ScreenWidth, A_ScreenHeight, *50 %A_ScriptDir%\image\clear.bmp
if(Errorlevel = 0)
{~~~
~~~ }
~~~~
else
{
imageSearch, foundX, foundY, 0, 0, A_ScreenWidth, A_ScreenHeight, *50 %A_ScriptDir%\image\clear.bmp
if(Errorlevel = 0)
~~~~
}
이런식으로 하는것도 아닌거같구.. 어떻게 해야할까요 ?
ruclips.net/video/DZBFUrhVt5Y/видео.html
이 영상을 우선 확인해 보세요~
영상의 내용을 잘 고민해보시고 다시 댓글 달아주시면 답변 드리겠습니다.^^
시작햇을때 돈만꾹눌러지고 집버튼을 안찿네요
해결법좀 부탁드릴게요
스크립트를 똑같이 따라서 작성하셨고 이미지를 잘 캡쳐하셨다면 동작이 되야합니다
우선 작성하신 스크립트에 틀린부분은 없는지 확인하시고 틀린부분이 없다면 관리자권한으로 실행해보시기 바랍니다.^^
혹시라도 4k모니터를 사용하신다면 이미지서치가 적용이 안되니 참고하시구요~
@@elderlykim 스크립트는 몇번을봐도맞는데... 노트북사용중입니다
음...노트북이라도 잘 동작하는게 맞는데 이상하네요.ㅠ
작성하신 스크립트좀 볼 수 있을까요?
26:03 에서 690, 968 이거 잘못된 거 아닌가요? 끝나는 지점이 아니고 처음 좌표에서 뺀 가로와 세로 길이값을 넣어주는게 맞는거 아닌가요?
답글을 달았다고 생각했는데 안달려있네요.ㅠ 이 강의에서 제가 혼동이 있어 잘못 알려드렸습니다.ㅠ 이부분은 볼때마다 확인이 필요하네요.ㅠ 이미지서치와 픽셀서치의 경우 끝점 좌표를 입력하는게 맞습니다.^^
번외강의를 보시면 정확한 내용이 있어요~^^
혼동을 드려 죄송합니다.ㅠ
gui, add, text, x30 y50 w120 h30, 매크로 프로그램
gui, add, checkbox, x20 y100 w80 h20 v욕창, 욕창
gui, add, checkbox, x140 y100 w80 h20 v낙상, 낙상
gui, add, button, x180 y150 w90 h20, 시작
gui, add, button, x180 y190 w90 h20, 닫기
gui, add, text, x20 y150 w40 h20, 듀티:
gui, add, combobox, x63 y150 w57 h60 v듀티 choose1, day|eve|night
gui, add, text, x20 y190 w40 h20, 작성자:
gui, add, combobox, x63 y190 w57 h120 v작성자 choose1, 김우성|김지은|조윤아|박수영|신지혜|박재완
gui, Show, , 매크로
returnbutton시작:
{
CoordMode, mouse, screen
CoordMode, pixel, screen
gui, submit, nohide
if (욕창= 1)
{
wingetpos, ax, ay, width, height, 예방활동기록지
윈겟변수1 := width + ax
윈겟변수2 := height + ay
ImageSearch, outx, outy, %ax%, %ay%, %윈겟변수1%, %윈겟변수2%, *50 이미지\1.bmp
if (errorlevel = 0)
{
send {click %outx%, %outy%}
}
ImageSearch, outx, outy, %ax%, %ay%, %윈겟변수1%, %윈겟변수2%, *50 이미지\2.bmp
if (errorlevel = 0)
{
send {click %outx%, %outy%}
}
if (듀티 = "day")
{
ImageSearch, outx, outy, %ax%, %ay%, %윈겟변수1%, %윈겟변수2%, *50 이미지\오전.bmp
if (errorlevel = 0)
{
send {click %outx%, %outy%}
}
else
{
ImageSearch, outx, outy, %ax%, %ay%, %윈겟변수1%, %윈겟변수2%, *50 이미지\오전.bmp
if (errorlevel = 1)
{
send {click %outx%, %outy%}
Sleep, 500
}
send {up}
sleep, 500
}
send {click 690,170}
send {8}
send {click 705,170}
send {0}
send {click 720,170}
send {0}
ImageSearch, outx, outy, %ax%, %ay%, %윈겟변수1%, %윈겟변수2%, *50 이미지\기호.bmp
if (errorlevel = 0)
{
send {click %outx%, %outy%}
Sleep, 500
}
send {click 390,222}
send {click 473,222}
send {click 560,222}
send {click 655,222}
send {click 750,222}
send {click 830,222}
send {click 900,222}
send {click 980,222}
send {click 690,170}
sleep, 3000
send {10}
send {click 705,170}
send {0}
send {click 720,170}
send {0}
send {click 390,240}
send {click 473,240}
send {click 552,240}
send {click 655,240}
send {click 750,240}
send {click 830,240}
send {click 900,240}
send {click 980,240}
ImageSearch, outx, outy, %ax%, %ay%, %윈겟변수1%, %윈겟변수2%, *50 이미지\오후.bmp
if (errorlevel = 0)
{
send {click %outx%, %outy%}
}
else
{
ImageSearch, outx, outy, %ax%, %ay%, %윈겟변수1%, %윈겟변수2%, *50 이미지\오후.bmp
if (errorlevel = 1)
{
send {click %outx%, %outy%}
}
send {up}
}
여기 듀티 부분 처음에 오전이면 그냥 넘어가고 아니면 클릭하고 위쪽방향키 누르긴데 이건 또 왜안될까요 ㅠㅠ 아예 저 동작을 무시하거나 아니면 반대로하거나 12시넘어갈때 오후로 바꿨다가 2시 넘어가면서 다시오전으로 바꿔 버 리네요 ㅠㅠ
그리구 밑에 send부분은 클릭은 하는데 숫자를 안치고 넘어가네요 정확히 쓴거 같은데 ㅠㅠ
하나 해결하면 하나가 안되고 기본 하루에 4시간씩 잡고있는거 같은데 실력이 안느네요 ㅠㅠ업무용으로 쓰려고 하는데
음....프로그램은 정해진 순서대로 동작하니까 원하는 동작의 순서도를 한번 그려보시는게 좋을 것 같습니다.
전반적으로 말씀하신 내용과 다르게 작성되어 있네요^^
만들어놓으신 프로그램이 어떤 순서로 동작하는지 얘기해볼게요
1. 듀티에 "day"가 들어가 있으면 오전 이미지를 찾음
2. 오전 이미지가 있으면 오전 이미지를 클릭하고 없으면 else로 넘어갑니다.
3. else에서 오전이미지를 찾고, 못찾았을 때 클릭을 하도록 되어있고 찾든 못찾든 키보드 UP 버튼을 누릅니다.
이부분이 문제인 것 같습니다. 결과적으로 오전 이미지를 찾든 못찾든 클릭을 하고 키보드 UP 버튼을 누르는 겁니다.
(작성된 대로 잘 동작하는겁니다. 단지 잘못 만들어졌을 뿐이지요^^)
추가로 이미지를 못찾았을때 outx, outy를 클릭하도록 만들어 놓으셨는데 이미지를 못찾으면 클릭할 좌표가 없지 않을까요??^^
그리고 숫자를 안치고 넘어간다는건 조금 확인이 필요한 문제일 것 같습니다.
우선 send와 send 사이에 1초정도 Sleep을 준 다음 확인해보시기 바랍니다.
만약 그래도 안된다면 문자가 입력되는 부분이 활성화 되어있는지 확인해보시면 될 것 같습니다.
문자입력하는게 아니라면 Sleep을 주면 동작할 것 같습니다.
제 생각에는 안되는 부분의 내용을 지우고 다시한번 차근차근 만들어보시는게 좋을 것 같습니다.
프로그래밍은 마음이 급할수록 더 안되는 분야입니다.
우선 강의 내용을 확실하게 이해하는 것이 중요하고, 내가 원하는 프로그램의 동작의 순서를 명확히 하는 것이 중요합니다.
그 뒤에는 정해진 순서에 따라 작성만 하면 됩니다.
이번 문제만 해결하시면 한단계 올라서실 수 있으니 화이팅입니다!^^
@@elderlykim 오늘 밤에 가서 한번 해봐야겠네요 슬립 1초씩 주고 클릭해서 활성화까진 되는데 숫자를 안치고 다음꺼 클릭을 해요ㅠㅠ
항상 감사합니다ㅎㅎ귀찮을텐데 친절히 답변해주시구ㅠㅠ
강의를 통해서 얻을 수 있는게 한계가 있으니까요~^^
화이팅입니다~!!
오버워치 이미지 서치 아무나 오토핫키로 만드는게 아니구나...
gui, add, text, x30 y5 w110 h20, 매크로 프로그램
gui, Add, Text, x60 y30 w50 h20 v횟수, 0회
gui, add, Edit, x48 y50 w50 h20 v제한, 0
gui, add, Button, x20 y80 w110 h20, 시작
gui, add, button, x20 y140 w110 h20, 종료
gui, add, button, x20 y110 w110 h20, 멈춤
gui, show, ,메크로
매크로상태 := false
MsgBox,,, 종료시 X가 아닌 종료 버튼으로 부탁드립니다,
return
Button시작:
{
매크로상태 :=true
CoordMode, mouse, Screen
CoordMode, Pixel, screen
gui, Submit, nohide
loop, %제한%
{
Click dwon 909, 434
GuiControl,, 횟수, %A_Index% 회
sleep, 3000
Click up 909, 434
sleep 2000
ImageSearch, OutX, OutY, 0, 0, A_ScreenWidth, A_ScreenHeight, *30 이미지 서치\집 선택.bmp
if (ErrorLevel = 0)
{
Click %OutX%, %OutY%
sleep, 2000
}
else
{
ImageSearch, OutX, OutY, 0, 0, A_ScreenWidth, A_ScreenHeight, *30 이미지 서치\집.bmp
if (ErrorLevel = 0)
{
Click %OutX%, %OutY%
sleep, 2000
}
}
if(매크로상태 = false)
{
break
}
}
}
return
Button종료:
{
MsgBox, 64, 종료, 정상적으로 종료되었습니다.
ExitApp
}
return
Button멈춤:
{
매크로상태 := false
}
return
guiclose:
{
MsgBox, 16, 경고, 종료 버튼으로 종료해주세요.
}
return
이거 이미지 서치가 않되서 좀 틀린거나 않적은 것좀요
내용진짜좋은데 말이너무느려서못보겟엉 전공자라 이해가 빨리되서그런가 ㅋㅋ