BlockInput

사용자가 컴퓨터와 키보드와 마우스를 통하여 상호작용 할지 말지 여부를 켜고 끕니다.

BlockInput, OnOff
BlockInput, SendMouse
BlockInput, MouseMove  ; [v1.0.43.11+]

매개변수

OnOff

This mode blocks all user inputs unconditionally. Specify one of the following words:

On: 사용자가 컴퓨터와 상호작용하지 못합니다 (마우스와 키보드 입력은 효과가 없습니다).

Off: 입력을 가능하게 합니다.

[v1.1.30+]: The decimal values 1 and 0 may be used in place of On and Off, respectively.

SendMouse

This mode only blocks user inputs while specific send and/or mouse commands are in progress. Specify one of the following words:

Send: Send 또는 SendRaw가 진행 중인 동안 사용자의 키보드와 마우스 입력을 무시합니다 (전통적인 SendEvent 모드만 허용합니다). 사용자의 키 입력 때문에 흉내낸 키눌림의 흐름이 방해받지 않도록 막습니다. Send가 끝날 때, 입력이 다시 가능해집니다 (앞에서 BlockInput On으로 막고 있는 경우는 제외합니다).

Mouse: 사용자의 키보드와 마우스 입력은 Click, MouseMove, MouseClick, 또는 MouseClickDrag이 진행 중일 때 무시됩니다 (전통적인 SendEvent 모드만 허용합니다). 사용자의 마우스 이동과 클릭 때문에 흉내낸 마우스 이벤트 흐름이 방해받지 않도록 막습니다. 마우스 명령어가 끝날 때 (이전에 BlockInput On이 사용되여 여전히 입력을 막고 있지만 않다면) 입력이 다시 가능해집니다.

SendAndMouse: 위 두 방법을 조합.

Default: SendMouse 모드를 모두 끄지만, 입력 방지의 현재 상태를 바꾸지 않습니다. 예를 들어, BlockInput On이 현재 효과가 있다면, BlockInput Default를 사용해도 꺼지지 않습니다.

MouseMove [v1.0.43.11+]

This mode only blocks the mouse cursor movement. Specify one of the following words:

MouseMove: 마우스 커서는 사용자의 물리적 마우스 이동에 반응하지 않습니다 (DirectInput 어플은 예외적으로 가능합니다). 스크립트가 이 명령어를 처음 사용할 때, (아직 설치되지 않았다면) 마우스 갈고리가 설치됩니다. 게다가, 스크립트는 영속적이 됩니다. ExitApp를 사용해야만 종료할 수 있다는 뜻인다. 마우스 갈고리는 다음 Suspend 또는 Hotkey 명령어를 사용할 때까지 여전히 설치되어 있을 것입니다. 그 순간 핫키나 핫스트링을 요구하지 않으면 제거됩니다 (#Hotstring NoMouse 참조).

MouseMoveOff: 사용자에게 마우스 커서를 이동하도록 허용합니다.

논평

All three BlockInput modes (OnOff, SendMouse and MouseMove) operate independently of each other. For example, BlockInput On will continue to block input until BlockInput Off is used, even if one of the words from SendMouse is also in effect. Another example is, if BlockInput On and BlockInput MouseMove are both in effect, mouse movement will be blocked until both are turned off.

Note: The OnOff and SendMouse modes might have no effect if UAC is enabled or the script has not been run as administrator. For more information, refer to the FAQ.

BlockInput보다, 종종 SendMode Input 또는 SendMode Play을 사용하는 편이 더 좋을 경우가 많습니다. 왜냐하면 키눌림과 마우스 클릭을 인터럽트할 수 없기 때문입니다. BlockInput과 다르게, 위 모드는 전송 중 사용자가 타자한 것을 버리지 않습니다; 대신에, 버퍼 처리했다가 나중에 전송합니다. BlockInput을 피하면 다음 문단에서 기술하는 바와 같이 키가 눌러붙는 것을 우회할 필요도 없어집니다.

사용자가 키를 누르고 있는 동안에 BlockInput이 활성화된다면, 그런 키들은 "눌러 붙어버립니다". 이것은 그 키가 놓일 때까지 기다렸다가 BlockInput을 켜면 해결됩니다. 다음 예제와 같이:

^!p::
KeyWait Control  ; 키를 떼기를 기다립니다. 각각의 핫키 수식자마다 KeyWait를 하나씩 사용합니다.
KeyWait Alt
BlockInput On
; ... 키눌림과 마우스 클릭을 전송합니다 ...
BlockInput Off
return

입력 방지는 Alt 이벤트가 전송될 때마다 자동으로 그리고 임시로 꺼집니다 (나중에 다시 활성화됩니다).

BlockInput이 켜져 있을 때, 사용자 입력은 막히지만 오토핫키는 키눌림과 마우스 클릭을 흉내낼 수 있습니다. 그렇지만, Ctrl+Alt+Del을 누르면 Windows API 특징 때문에 입력이 다시 가능해집니다.

어떤 유형의 갈고리 핫키는 BlockInput이 켜져 있어도 여전히 촉발될 수 있습니다. 예로는 MButton (마우스 갈고리) 그리고 LWin & Space (수식 심볼 $#이 아니라 명시적으로 접두 심볼이 붙은 키보드 갈고리)가 있습니다.

스크립트가 끝날 때 자동으로 입력이 다시 가능해집니다.

SendMode, Send, Click, MouseMove, MouseClick, MouseClickDrag

예제

Opens Notepad and pastes time/date by sending F5 while BlockInput is turned on. Note that BlockInput may only work if the script has been run as administrator.

BlockInput, On
Run, notepad
WinWaitActive, Untitled - Notepad
Send, {F5} ; 날짜와 시간을 붙여 넣습니다
BlockInput, Off