티스토리 뷰

컴퓨터 관련

[오토핫키]loop 반복 실행중 중단명령

진리와 가치를 고루고루 2013. 6. 1. 16:41

● [오토핫키]loop 반복 실행중 중단명령

참고 오토핫키 기본사용법  http://story007.tistory.com/860


반복되는 작업을 할 때 오토핫키의 매크로 스크립트 명령에서
loop 명령을 사용하는 경우가 있다.

그런데 처음 실행시 스크립트가 잘못되었는데도
계속 반복하는 경우
이것을 중단하는 방법을 만들어 보았다.

샘플 스크립트에서
If stopsign=stop
 {
stopsign=
break
 }
라는 명령을 loop 명령 시작 부분에 넣었다.

그리고
CTRL+Shift+X
키를 누르면
stopsign 변수값이 stop 으로 되어서 실행을 중지할 수 있게 해보았다.



● 그런데 이 방안보다 조금 더 쉬운 방안이 있다. 

reload 명령을 배당하고 
이것을 실행하는 경우다. 
( 다만 reload 되면 스크립트가 loop 명령이 곧 바로 실행되지 않고
일정한 명령이 핫키에 배당되어 핫키를 통해 재실행되도록 되어 있어야 한다. )




^ESC::

RELOAD

return





Ctrl + ESC 키를 누르면 
스크립트를 reload 해서 
잘못 실행되는 스크립트를 중지시킬 수 있다. 



아래는 샘플이다. 
샘플 스크립트는 Editplus에서 문서작업을 스크립트로 짜본 것이다.



EditPlus 에서는 기본적으로 Ctrl +Q 로 키매크로를 지원한다.
그러나, 간혹 창 전환을 해 작업하는 경우 등은 지원하지 않는다.
이런 경우 오토핫키 매크로를 사용하면 된다.  
참고로 오토핫키에서 문서반복 작업과정에 대한 키 기록을 하려면
AutoScriptWriter.exe 를 실행한 다음 녹화하여 복사하면 된다. 



이처럼 스크립트를 작성해 작업을 실행했는데 

중간에 오작동이 발생하면 
위 핫키를 누르면 중간에 중지시킬 수 있게 된다. 


[ 샘플 스크립트의 작업내용은 다음이다. ] 
■ 샘플 내용 - 


EditPlus 기준 문서에 일정한 글자를 찾기 실행한 다음 
블록설정한 상태에서 일정 줄( 4 줄 )을 내려 블록설정한 다음 이를 복사하고 
이것을 옆창 문서에 옮겨 복사하는 경우다. 
이 경우 횟수는 지정한 대로 실행한다. 
다만, 이 스크립트는 실행전에 해당 문서에서 찾기할 내용을 
1회 찾기를 실행한 상태에서 이 핫키를 실행해야 한다.



; ----------- 이하 는스크립트 내용

#IfWinActive



; 반복 실행 (LOOP) 도중 중단 및 재 실행키 CTRL+Shift+X
^+x::
stopsign=stop
return

; Ctrl + Esc 핫키를 누르면 본 스크립트를 다시 로드하면서 실행하던 loop 아래 명령실행을 중지하게 된다. 

^ESC::

RELOAD

return


; 다음은 EditPlus 창에서만 실행하라는 뜻

#IfWinActive, EditPlus
#^m::
; 다음은 본 스크립트를 반복 실행할 횟수를 적어 넣는 창. 10초내..
;InputBox, OutputVar [, Title, Prompt, HIDE, Width, Height, X, Y, Font, Timeout, Default]

InputBox, countm, [실행횟수], 실행할 횟수를 적어 주세요, , , , , , , 10, 2

loop1:
; 위에 지정한 횟수대로 loop 를 실행하는 부분 
Loop, %countm%
{
; Loop 실행중간에 중지

If stopsign=stop
  {
stopsign=
break
  }

; 찾은 곳 다시 찾기
Send, {F3}

; 내려서 복사할 줄 4줄
sleep, 300
Send, {HOME}{SHIFTDOWN}{DOWN}{DOWN}{DOWN}{DOWN}{SHIFTUP}


; 복사하기
sleep, 300
Send, {CTRLDOWN}c{CTRLUP}
sleep, 500

; 옆 창으로 옮겨 가기
Send, {right}{CTRLDOWN}{TAB}{CTRLUP}
sleep, 300
Send, {CTRLDOWN}v{CTRLUP}{ENTER}{ENTER}

; 다시 원래창으로 돌아오기
sleep, 500
Send, {CTRLDOWN}{TAB}{CTRLUP}
Send, {RIGHT}
}

return


; ----스크립트 끝 ----------


● 한편 위와 같은 기능을 문서나 사진 편집시 많이 사용하는 경우는 

다음의 문서 사진 편집 스크립트안에 같이 넣어 사용할 수 있다. 


문서 사진 편집 전체 스크립트 참조 =>   http://story007.tistory.com/89





● 매크로는 문서 편집 작업 등에서 
반복해 행하는 편집 작업 부분을 매크로로 기록해
반복시켜 수작업을 반복해 행하는 불편을 더는 데 주로 사용한다.

그런데 자신이 반복해 행하는 작업을 위처럼 기록했는데 
오류가 발생하는 경우 
물론 키나 명령어를 잘못 입력한 경우도 있지만, 
자신의 시스템에서 각 작업 실행에 들어가는 시간을 고려하지 않고
너무 빨리 실행하게 하는 경우에도 발생할 수 있다. 

그래서 자신의 작업실행시 창을 연다거나 옮긴다거나 할 때 
어느 정도 시간이 필요하다고 보면 SLEEP 명령을 이용해서 
조금씩 시간 여유를 주어 실행하면 오류가 사라질 수도 있다. 






Ω♠문서정보♠Ω
™[작성자]™ Prince evilstupidmiserable Little
◑[작성일]◐
♨[수정내역]♨
▩[ 디스크 ]▩ [DISK]
ж[ 웹 ]ж [web] http://story007.tistory.com/861
⇔[ 관련문서]⇔
{!-- 관련 문서 링크--}
인터넷 상의 목록 http://essay007.tistory.com/860
디스크 상의 목록 o:/G/G/00/basic_format/form-catalog.htm
Ш[ 관련 문서 인용 부분 ]Ш
ㅹ[ 코멘트 등 정리 내역]ㅹ



댓글