|
프로페셔널 사용하면서 단순 녹화 방식과 /알람을 이용한 장사를 종종 했었는데요..
이번에 화면인식도우미 스크립을 짜면서 재가 생각하는 방향대로 구동이 되지 않는 점 떄문에
문의 드립니다.
간단한 예로
X,Y,Z 라는 인식목록이 3가지 /
각각의 인식으로 넘어가기 위한 A 를는 변수 3가지
0 = A 일떄 X 구동/ 1= A일떄 Y구동 / 2 = A 일대 Z 구동
인식간격은 1초로 그대로 나두었습니다.
X 인식 스크립창
>>스샷 지점 마우스 이동 -> 0.5초대기 ->클릭 ->1초대기 -> 변수 0을 1로 바꾼다.
y 인식 스크립창
>>스샷 지점 마우스 이동 -> 0.5초대기 ->클릭 ->1초대기 -> 변수 1을 2로 바꾼다.
Z 인식 스크립창
>>스샷 지점 마우스 이동 -> 0.5초대기 ->클릭 ->1초대기 -> 변수 2을 0로 바꾼다.
단순 스크립 하나 즉석에서 적어 봤는대요. 재가 원하게 바라는 것은
X-> Y ->Z ->X-> Y ->Z 이렇게 무한 루프처럼 돌아야되는대..
막무가내로 돌아가내요. 이게 다 인식간격 셋팅 문제인 것같은데
어떤분들은 대기 시간하지말고 동작단계로 나눠서 하라구 하셔셔
마찬가지로 해보았지만 역시나 안됩니다...
인식간격 계산하는 방법이 따로 있는건가요?,, 답답한 마음에 글 한번 적어봅니다..
|
0.5초이상 시간 지연을 줄 필요가 있을 때에는 동작단계를 이용해서 지연을 주는 것이 정석이라고 봅니다.
1차 스캔에서 1번항목이 일치해서 동작을 합니다.
곧바로(0.0x초 후에) 다음 스캔이 들어가서 2번항목이 일치해서 2번 항목 동작이 들어갑니다. 하지만, 아직 1번 항목의 동작이 완료되지 않았기 때문에 2번은 동작 대기열에 들어갑니다. 제가 듣기로 도우미는 1개의 항목까지는 동작 대기열에 대기 시킬수 있다고 합니다.
0.0x초 후에 3번 항목이 도 일치해서 3번까지 동작을 할려고 하지만, 아직 1번도 끝나지 않은 상태입니다.
이런식으로 스캔은 무지무지 고속으로 계속 스캔에서 1~3번 파례로 동작을 시킬려고 하지만, 아직 한참 앞의 항목도 명령 완료가 안되어 있으니, 그 뒤에 것들은 랜덤하게 건너뛰게 되는 것입니다.
이걸 방지할려면 간단한 경우에는 중간에 동작 단계를 넣어서 지연을 해주면 되고, 정확하게 원하는 시간만큼은 다른 모든 동작을 하지 못하게 만들려면 아예 변수를 넘겨서 개별 항목에서 일정 시간만큼 지연을 한 다음 다음 스캔을 하도록 만들어 주면 정확하게 동작합니다.
0.5초 대기하는 인식항목 하나 만들어주고, 1초 대기하는 인식항목 하나 만들어 줍니다.
인식간격 0.1초,A=0,B=0, X인식되면
<동작1>
마우스이동
B=10
<동작2>
클릭
B=20
<동작3>
A=1
Y,Z도 똑같이 만들어 주고요
인식간격 0.3초(요부분은 시험하면서 정확하게 0.5초로 맞추면 됨),B=10,
<동작1>
<동작2>
B=0
인식간격 0.8(정확한거 원하면 조절하면서 시험), B=20
<동작1>
<동작2>
B=0
요렇게 시간지연 항목을 만들어서 시간지연 필요할때 시간지연 항목이 실행되도록 만들어주면 해결 되겠네요.
http://cafe.naver.com/zizonstudy
처음과 두번째, 그리고 세번째 인식값으로 지정한 픽셀의 좌표랑 색값이 모두 같다면 문제가 될 것 같습니다. 확인해보세요.
처음에 지정한 픽셀값을 확인하고 변수를 바꾸고 다음 단계로 넘어가는 도중에, 정작 화면은 딜레이가 생겨 바뀌지 않았지만 처음과 두번째에 지정한 픽셀 좌표와 값이 같다면 아직 바뀌지 않은 화면을 다른 화면으로 바뀌었다고 착각하고 다음번 실행을 할 수 있습니다. (오토기계는 정상적으로 처리한거죠.)
글로는 참 표현하기가 힘든데, 아무튼 말씀드리고 싶은건 님께서 적어놓으신 x인식, y인식, z인식에서 인식시킬 픽셀의 좌표와 색값이 모두 같은건 아닌지 확인할 필요가 있다는겁니다.