일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- 함수
- EnvDiv
- Var:=식
- IfWinExist
- API
- SetTitleMatchMode
- EnvAdd
- 식
- SetEnv
- ControlGetText
- StringGetPos
- DetectHiddenWindows
- 배열
- MouseClick
- SetMouseDelay
- SetKeyDelay
- Threads
- EnvSet
- SetControlDelay
- IF (식)
- if
- 식의 설명
- autohotkey
- if(식)
- Menu
- IfInString
- EnvSub
- Blocks
- EnvMult
- ControlSend
- Today
- Total
ㄴrㅎnㅂrㄹrㄱi
SendMode Send,SendRaw,Click커멘드 및Mouse계 커멘드의 처리 방식을 변경한다 본문
SendMode
Send,SendRaw,Click커멘드 및Mouse계 커멘드의 처리 방식을 변경한다
SendMode Mode
Parameters
인수명 | 설명 |
---|---|
Mode | 이하의 어떤 것인지를 지정. 각방식의 자세한 특징은 후술.
|
Event모드
일정한 간격을 열면서, 개개의 조작 이벤트를 생성한다.
조작의 재생중에 유저가 간 조작이 끼어들어 버리는 일이 있다.
이것을 막으려면 , BlockInput커멘드로 유저의 조작을 무효화해 두면 좋다.
조작의 간격은, SetKeyDelay, SetMouseDelay커멘드로 설정할 수 있다.
Input모드
입력의 재생 속도가 매우 빠르다.
이 때문에, 재생중에 예기치 못한 윈도우가 나타나고 동작을 방해할 수 있다고 말했던 것이 막을 수 있다.
또, 재생중에 유저가 간 조작은, 재생 종료후까지 뒷전으로 된다.
이 모드에서는, 한 번에 실시할 수 있는 조작의 수는5000개정도까지 제한되고 있다.
이것을 넘은 만큼은 무시된다.
다른 프로그램이 하위 레벨 키 훅을 사용하고 있으면,Input모드는 성능이 크게 저하해 버린다.
이 때문에, 다른AutoHotkey스크립트가 훅을 이용하고 있는 경우,Input모드는 자동적으로Event모드로 변경된다.
또,Windows95/NT그럼 이 모드는 이용하지 못하고, 똑같이Event모드로 변경된다.
「 CoordMode,Mouse,Relative」(으)로 마우스 조작의 좌표를 액티브 윈도우의 좌상으로부터의 상대 좌표로서 취급하도록(듯이) 설정되어 있을 때,Send커멘드내의 「{Click}」조작의 기준 좌표는 커멘드가 개시한 시점으로의 액티브 윈도우의 좌상 좌표가 된다.
이 때문에, 도중에 액티브 윈도우가 변하거나 하면, 기대 그대로의 동작이 되지 않는 것이 있다.
Send커멘드를 여러 차례로 나누고,Click의 전에 윈도우의 변화가 생기지 않게 하면, 이 문제는 발생하지 않는다.
이 모드에서는, 일절 사이를 열지 않고 모든 조작이 재생된다.
SetKeyDelay커멘드로 간격을 설정할 수 없다.
Input모드를 사용하지 못하고Event모드로 변경되었을 경우는, 「SetKeyDelay,-1,0」(을)를 지정했을 때의 동작이 된다.
다만, 「SetKeyDelay,-1,-1」(이)가 설정되어 있는 경우는, 그 설정에 따른다.
Play모드
Play모드에서는, 일련의 조작이 액티브 윈도우에 대해서 일시에 이송된다.
Input모드보다는 저속이지만, 「SetKeyDelay,-1,-1」(이)가 설정되었다Event모드보다는 고속으로 동작한다.
「SetKeyDelay,10,10,Play」(와)과 같이 하면,Event모드와 같게 각 키 조작동안에 일정한 간격을 열게 할 수 있다.
재생중에 유저가 간 조작은, 재생 종료후까지 뒷전으로 된다.
다만,Windows키를 포함한 시스템의 hot key만은 동작하기 위해(때문에), 스타트 메뉴등에 의해 그래가 방해할 수 있는 경우가 있다.
AutoHotkey하지만 키보드 훅(을)를 사용하고 있는 경우, 자동적으로Windows키가 무효화되어 오동작을 방지한다.
Play모드로Windows키(LWin,RWin)(을)를 눌러도,Win+R등의 hot key는 반응하지 않는다.
또,CapsLock,NumLock,ScrollLock키의 타글 상태를 변경하는 것도 할 수 없다.
재생중에Ctrl+Alt+Del(이)나Ctrl+Esc하지만 밀리면, 재생은 도중에 종료해, 스크립트의 다음이 실행된다.
Play모드로 생성한 키의 눌러 인하 상태는,GetKeyState등에서 검출할 수 없다.
스크립트 자신의 윈도우에 보내졌을 때 만은 예외적으로 검출할 수 있지만, 「RShift」등과 같이 수식 키의 좌우를 구별할 수 없다.
Remarks
Send커멘드에는, 상기의3개의 모드에 대응하는 커멘드로서 「SendEvent」 「SendInput」 「SendPlay」커멘드가 준비되어 있다.
이러한 커멘드를 이용하는 것으로, 일시적으로SendMode의 설정과는 다른 방식으로 입력의 생성을 실시할 수 있다.
마우스 조작도, 「SendPlay,{Click}」(와)과 같이 해 발생 당한다.
어느 모드도, 특정의 어플리케이션을 능숙하게 조작할 수 없는 경우가 있다.
조작하고 싶은 어플리케이션에 따라 구분하여 사용할 필요가 있다.
이 설정의 기본치는, 스크립트의 최초의 AutoExecute섹션그리고 설정한다.
hot key등에서 새롭게 기동되었다 스렛드그럼, 설정은 기본치로 설정된다.
Related
Send, SetKeyDelay, SetMouseDelay, Click, MouseClick, MouseClickDrag, MouseMove
Examples
SendMode Input SendMode InputThenPlay
'AUTOHOTKEY > 레퍼런스' 카테고리의 다른 글
SetControlDelay GUI컨트롤 조작시의 간격을 지정 (0) | 2007.11.05 |
---|---|
SetBatchLines 자동적으로 실행된다Sleep의 간격을 설정(실행 속도와CPU부하에 영향) (0) | 2007.11.05 |
Send/SendRaw/SendEvent/SendInput/SendPlay 키스트로크(keystroke)를 발생시킨다 (0) | 2007.11.05 |
RunAs Run(이)나RunWait때, 다른 유저의 권한으로 기동하는 것을 가능하게 한다.(2000/XP전용) (0) | 2007.11.05 |
Run / RunWait 외부 프로그램을 실행한다. (0) | 2007.11.05 |