매크로

조회 수 191 추천 0 댓글 2

#NoEnv

#Persistent

#SingleInstance, Force

#KeyHistory, 0

#InstallKeybdHook

#UseHook

#HotKeyInterval 1 

#MaxHotkeysPerInterval 127


CoordMode, pixel, screen

CoordMode, mouse, screen



F6::

Loop

{

ImageSearch ax, ay, 575, 1030, 610, 1050, *50 %A_ScriptDir%\10.bmp

if(ErrorLevel = 0)

{

while GetKeyState("space", "P")

{

Send, z

Sleep, 250

Send {x down}

Sleep, 750

Send {x up}

}

}

else

{

ImageSearch ax, ay, 575, 1030, 610, 1050, *50 %A_ScriptDir%\11.bmp

if(ErrorLevel = 0)

{

while GetKeyState("space", "P")

{

Send, z

Sleep, 250

Send {x down}

Sleep, 658

Send {x up}

}

}

else

{

ImageSearch ax, ay, 575, 1030, 610, 1050, *50 %A_ScriptDir%\12.bmp

if(ErrorLevel = 0)

{

while GetKeyState("space", "P")

{

Send, z

Sleep, 250

Send {x down}

Sleep, 582

Send {x up}

}

}

else

{

ImageSearch ax, ay, 575, 1030, 610, 1050, *50 %A_ScriptDir%\13.bmp

if(ErrorLevel = 0)

{

while GetKeyState("space", "P")

{

Send, z

Sleep, 250

Send {x down}

Sleep, 518

Send {x up}

}

}

else

{

ImageSearch ax, ay, 575, 1030, 610, 1050, *50 %A_ScriptDir%\14.bmp

if(ErrorLevel = 0)

{

    while GetKeyState("space", "P")

{

Send, z

Sleep, 250

Send {x down}

Sleep, 463

Send {x up}

}

}

else

{

ImageSearch ax, ay, 575, 1030, 610, 1050, *50 %A_ScriptDir%\15.bmp

if(ErrorLevel = 0)

{

while GetKeyState("space", "P")

{

Send, z

Sleep, 200

Send {x down}

Sleep, 465

Send {x up}

}

}

else

{

ImageSearch ax, ay, 575, 1030, 610, 1050, *50 %A_ScriptDir%\16.bmp

if(ErrorLevel = 0)

{

while GetKeyState("space", "P")

{

Send, z

Sleep, 200

Send {x down}

Sleep, 423

Send {x up}

}

}

else

{

ImageSearch ax, ay, 575, 1030, 610, 1050, *50 %A_ScriptDir%\17.bmp

if(ErrorLevel = 0)

{

while GetKeyState("space", "P")

{

Send, z

Sleep, 200

Send {x down}

Sleep, 387

Send {x up}

}

}

else

{

ImageSearch ax, ay, 575, 1030, 610, 1050, *50 %A_ScriptDir%\18.bmp

if(ErrorLevel = 0)

{

while GetKeyState("space", "P")

{

Send, z

Sleep, 200

Send {x down}

Sleep, 354

Send {x up}

}

}

else

{

ImageSearch ax, ay, 575, 1030, 610, 1050, *50 %A_ScriptDir%\19.bmp

if(ErrorLevel = 0)

{

while GetKeyState("space", "P")

{

Send, z

Sleep, 200

Send {x down}

Sleep, 325

Send {x up}

}

}

else

{

ImageSearch ax, ay, 575, 1030, 610, 1050, *50 %A_ScriptDir%\20.bmp

if(ErrorLevel = 0)

{

while GetKeyState("space", "P")

{

Send, z

Sleep, 200

Send {x down}

Sleep, 300

Send {x up}

}

}

else

{

ImageSearch ax, ay, 575, 1030, 610, 1050, *50 %A_ScriptDir%\21.bmp

if(ErrorLevel = 0)

{

while GetKeyState("space", "P")

{

Send, z

Sleep, 150

Send {x down}

Sleep, 324

Send {x up}

}

}

else

{

ImageSearch ax, ay, 575, 1030, 610, 1050, *50 %A_ScriptDir%\22.bmp

if(ErrorLevel = 0)

{

while GetKeyState("space", "P")

{

Send, z

Sleep, 150

Send {x down}

Sleep, 303

Send {x up}

}

}

else

{

ImageSearch ax, ay, 575, 1030, 610, 1050, *50 %A_ScriptDir%\23.bmp

if(ErrorLevel = 0)

{

while GetKeyState("space", "P")

{

Send, z

Sleep, 150

Send {x down}

Sleep, 283

Send {x up}

}

}

else

{

ImageSearch ax, ay, 575, 1030, 610, 1050, *50 %A_ScriptDir%\24.bmp

if(ErrorLevel = 0)

{

while GetKeyState("space", "P")

{

Send, z

Sleep, 150

Send {x down}

Sleep, 265

Send {x up}

}

}

else

{

ImageSearch ax, ay, 575, 1030, 610, 1050, *50 %A_ScriptDir%\25.bmp

if(ErrorLevel = 0)

{

while GetKeyState("space", "P")

{

Send, z

Sleep, 150

Send {x down}

Sleep, 0

Send {x up}

}

}

else

{

return

}

}}}}}}}}}}}}}}}}


return


F10::

{

ExitApp

}


보시다시피 위의 매크로는 특정 이미지가 하나 확인되면 스페이스 바를 누를시 그 이미지에 맞춰 반복되는 명령을 실행합니다. 그런데 스페이스바를 누르는 와중에 다른 이미지가 확인되면 그 이미지에 해당되는 명령을 실행시키고 싶습니다만 그럴려면 스페이스바를 잠시 떼었다가 다시 눌러야 되더군요.


while GetKeyState("space", "P")

{

Send, z

Sleep, 250

Send {x down}

Sleep, 750

Send {x up}

break

}


이렇게 While문 끝에 break를 넣으면 스페이스바를 계속 누르고있어도 변하는 이미지에 맞춰 다른 명령이 실행되긴 합니다만 처음부터 다시 이미지를 검색하고 명령을 실행해서 그런지 반복되는 명령 사이에 공백시간이 생겨 명령이 매끄럽게 반복되지 않습니다.


이런 문제를 해결하고싶은데 제 머리론 아무리 굴려봤자 좋은 해답이 나오질 않네요. 처음부터 잘못된 명령어를 사용한건가 싶기도 하고... 전문가의 도움이 필요합니다 :(


  • 할거엄따구 2020.04.02 12:35

    이미지검색 -> 스페이스바 누름 -> 명령 실행의 프로세스라면 getkeystate보단 keywait 명령어를 사용하는게 맞지 않나 싶은데요.

    http://autohotkeykr.sourceforge.net/docs/commands/KeyWait.htm

    참고해보시기 바랍니다.

  • 오핫배우는사람 2020.04.02 19:48
    말씀드린대로 keywait명령어도 활용해보았으나 명령사이의 공백시간이 생겨 명령이 자연스럽게 반복되지 않는 문제는 해결되지 않았습니다 :(
    구글링을 해본 결과 일반적으로 오토핫키는 멀티 쓰레드를 지원하지 않기 때문에 두개 이상의 반복문을 동시에 실행할 수 없어 그런것이라고 알게되었습니다. 오토핫키 H는 멀티 쓰레드를 지원한다고해서 그걸 사용해보려고 했으나 구글에서도 워낙 정보가 적어 H버전을 설치하는데 어려움을 겪고 있습니다. 혹시나 ahk H를 설치하는 방법을 알고 계신다면 알려주셨으면 좋겠습니다.

List of Articles
분류 제목 글쓴이 최근변경 추천
질문 !(느낌표) 가 주는게 무엇을 뜻하나요? 7 디스트로이어 2022.12.14 0/0
질문 #IfWinActive 사용할 경우 Hotkey를 on/off 하는 방법... 2 Rabbit 2016.08.17 0/0
질문 #Include file "Gdip.ahk" 이거 어떻게 해결하나여? 11 으으아으아 2016.09.18 0/0
자유 #던파#한국에서 대리육성합니다 한국육성팀 2019.04.04 0/0
질문 %A_ScriptDir%로 쓰려면 이미지 어디에 넣어야되나요? 4 작은이득 2019.05.02 0/0
질문 (GUI) edit에 입력받은 변수로 대기시간을 설정하는 스... 6 잠튕이 2015.07.02 0/0
질문 (imagesearch 관련 질문) 고수님들의 답변을 기다리고 ... 믕이 2019.01.07 0/0
질문 (LD앱) settiemr 만 넣으면 비활성이미지 서치 못하네요. 2 현장요원 2020.04.24 0/0
질문 (간단한?)매크로하나 만들고픈데 제작의뢰가능한가요? 2 더기더기1 2018.11.21 0/0
자유 (개초보) 이번에는 함수를 이용해서 세나 매크로 만들... 3 앞프론뒷태 2015.02.04 0/0
자유 (세븐나이츠) 뿌듯부듯.. 11 swksd 2015.11.14 1/0
자유 (세븐나이츠)쌩초보가 만든 매크로 공유합니다.(이미지... 12 swksd 2015.04.24 2/0
질문 (쌩초보) 단순 이미지서치에서 일정구간 n회 반복하는 ... 1 잘해보자잉 2017.08.17 0/0
정보 (안내) 글내용확인하시고 자삭하세요 27 snf 2015.02.23 0/0
질문 (오핫) 여러 단어 변수 지정 및 랜덤 조합 출력 방법 3 우리형 2019.10.23 0/0
질문 (중복질문)블루스택3 포스트메시지 키보드입력 ESC누르... 4 가족오락관 2017.12.29 0/0
질문 (초보) GDIP 이미지서치 사용방법 2 험블비 2017.08.31 0/0
질문 (초보) 앱플레이어 이미지서치 가보려하는데 산두적 2020.07.20 0/0
질문 (초보) 이미지서치 연속사용 1 작은이득 2017.06.07 0/0
정보 (펌)픽셀서치를 대체할 수 있는 비활성픽셀칼라 활용 ... 6 앙꼬호빵 2019.05.26 0/0
Board Pagination Prev 1 2345678910 ... 209 Next
/ 209

전체 최신 인기글

전체 주간 인기글