자유게시판
스크립트는
x::send,{x}{p}
이건데
이렇게짜면 ppppppppppppppppppppppppp자꾸 무한반복되네요
x눌렀을때 x랑p가 눌러지도록 하고싶은데
다른건 다 잘되는데
이것만 안되네요
이거 어떻게 해결해야될까요??
2019.08.19 16:08:51 (*.253.84.206)
요렇게 하면 됩니다.
x::
Hotkey, x,,OFF
send {x}{p}
Hotkey, x,,ON
return
원 코드는 x를 누르면 x와 p를 누르도록 프로그래밍 되어있습니다. 그런데 프로그램을 실행하는 과정에서 첫번째 x를 누를 때 다시 프로그램을 실행하도록 되어있어서 무한루프가 생기게 됩니다.
x 눌렀다 > 아 시킨거 해야지 > x 누르고 p 누르고 > 앗 x 누르면 시킨 것이 있었지 > [루프..] 아 시킨거 해야지 > x 누르고 p 누르고 > .....
그래서 x를 눌렀을 때 시킨 것을 잠시 멈추라고 해줘야 루프를 멈출 수 있습니다. 사실 뭐 다 아는 것 처럼 이렇게 써놨지만 이 해결책을 찾느라고 20분 정도 들었네요. 하하.. 오랜만에 코드를 보니 새롭네요.
작성된지 6개월이 지난 글에는 새 코멘트를 달 수 없습니다.
x눌렀을때 x가 다시 입력돼서 그런 것 아닌가요? 재귀입력이 들어간 듯한데요.
오토핫키 커뮤니티에 비슷한 질문이 있네요
https://autohotkey.com/board/topic/85984-send-initial-keof-hotkey-avoid-recursion/
https://autohotkey.com/board/topic/38170-hotkey-calls-itself-how-to-prevent-recursion/
이정도는 오토핫키가 알아서 필터링해야되는거 아니냐 하실수도 있지만 의도적으로 이 동작을 원하는 경우도 있을 수 있으니 재량에 맡겨둔 것