MouseMove
마우스 커서를 이동시킵니다.
MouseMove, X, Y [, Speed, R]
매개변수
- X, Y
마우스를 이동할 x/y 좌표, 표현식 가능. 조표는 활성 창에 상대적입니다. 단, CoordMode를 사용하여 좌표 체계를 바꾸었다면 예외입니다.
- Speed
마우스를 이동할 속도. 범위는 0 (가장 빠름)부터 100 (가장 느림)까지. 표현식 가능. 주의: 속도가 0이면 마우스는 순간 이동합니다. 생략하면, 기본 속도가 (SetDefaultMouseSpeed가 설정한 또는 2) 사용됩니다.
Speed는 SendInput/Play 모드에 대해서는 무시됩니다; 마우스를 순간 이동시킵니다 (그렇지만 SetMouseDelay는 SendPlay에 적용할 모드가 있습니다). 시각적으로 마우스를 더 느리게 이동시키려면 -- 청중을 위해 데모를 수행하는 스크립트라면 --
SendEvent {Click 100, 200}
또는SendMode Event
(선택적으로 BlockInput과 함께) 사용하십시오.- R
이 매개변수가 기호 R이면, X와 Y 좌표는 현재 마우스 위치로부터의 상대거리(offsets)로 취급됩니다. 다른 말로, 커서는 거의 현재 위치 X 픽셀 만큼 오르쪽으로 (음수이면 왼쪽으로) 그리고 Y 픽셀 만큼 아래쪽으로 (음수이면 위로) 이동합니다.
논평
이 명령어는 SendMode가 설정한 전송 방법을 사용합니다.
SendPlay 모드는 다른 모드보다 더 광범위한 게임에서 성공적으로 마우스 이벤트를 발생시킬 수 있습니다. 게다가, 어떤 어플리케이션과 게임은 마우스가 너무 빠르게 움직인다면 추적하는 데 어려움이 있을 수 있습니다. speed 매개변수나 SetDefaultMouseSpeed를 사용하면 그 속도를 줄일 수 있습니다 (기본 SendEvent 모드 전용).
BlockInput 명령어을 사용하면 사용자의 물리적인 마우스 활동 때문에 마우스 명령어로 생산한 흉내낸 마우스 이벤트가 어지럽게 되는 것을 막을 수 있습니다. 그렇지만, 이것은 보통 SendInput/Play 모드에는 불필요합니다. 왜냐하면 자동으로 사용자의 물리적 마우스 활동을 나중으로 연기하기 때문입니다.
마우스의 매 움직임마다 자동으로 지연 시간이 삽입됩니다 (SendInput 모드는 예외). SetMouseDelay를 사용하면 지연 시간의 길이를 변경할 수 있습니다.
다음은 마우스 커서를 이동하는 다른 방법입니다. 어떤 다중-모니터 구성에서는 더 잘 작동할 수도 있습니다:
DllCall("SetCursorPos", int, 100, int, 400) ; 첫 번째 숫자는 X-좌표이고 두 번째 좌표는 Y입니다 (화면에 상대적입니다).
관련하여 말씀드리면, 마우스 커서는 커서-숨기기 예제와 같이 임시로 숨을 수 있습니다.
관련 항목
CoordMode, SendMode, SetDefaultMouseSpeed, SetMouseDelay, Click, MouseClick, MouseClickDrag, MouseGetPos, BlockInput
예제
; 마우스를 새 위치로 이동합니다: MouseMove, 200, 100 ; 마우스를 천천히 (속도 50 vs. 2) 현재 위치로부터 ; 20 픽셀만큼 오른쪽으로 그리고 30 픽셀 만큼 아래쪽으로 이동시킵니다: MouseMove, 20, 30, 50, R