MouseClickDrag

지정된 마우스 버튼을 클릭하고 누릅니다. 마우스를 목표 좌표로 이동합니다. 그리고 마우스를 뗍니다.

MouseClickDrag, WhichButton, X1, Y1, X2, Y2 , Speed, Relative

매개변수

WhichButton

클릭할 버튼: Left, Right, Middle (또는 각각 앞 글자 하나). X1은 네 번째 버튼, X2는 다섯 번째 버튼입니다. 예를 들어: MouseClickDrag, X1, ....

사용자가 제어판을 통하여 마우스 좌우 버튼을 바꾼 경우 자동으로 보상하려면, 대신에 Click 명령어를 사용하십시오.

X1, Y1

끌기를 시작할 위치의 x/y 좌표, 표현식 가능 (마우스는 끌기가 시작되기 바로 전 이 좌표로 이동합니다). 좌표는 활성 창에 상대적입니다. 단, CoordMode가 사용되어 좌표가 변경된 경우는 제외합니다. 생략하면, 마우스의 현재 위치가 사용됩니다.

X2, Y2

마우스를 끌어다 놓을 x/y 좌표 (즉, 버튼이 눌려 있는 동안), 표현식. 좌표는 활성 창에 상대적입니다. 단, CoordMode가 사용되어 좌표가 변경된 경우는 제외합니다.

Speed

범위는 0 (가장 빠름)부터 100 (가장 느림)까지입니다. 표현식 가능.

주의: 속도가 0이면 마우스를 순간 이동시킵니다.

생략하면, 기본 속도 (SetDefaultMouseSpeed가 설정하거나 그렇지 않으면 2)가 사용됩니다.

SpeedSendInput/Play 모드에서 무시됩니다; 이 모드에서 마우스는 순간 이동합니다 (물론 SetMouseDelay에는 SendPlay에 적용할 모드가 있습니다). 시각적으로 마우스를 더 느리게 이동시키려면 -- 예를 들어 청중을 위한 데모를 수행하는 스크립트라면 -- (선택적으로 BlockInput과 함께) SendEvent {Click 100, 200} 또는 SendMode Event를 사용하십시오.

Relative

If omitted, the X and Y coordinates will be treated as absolute values. To change this behavior, specify the following letter:

R: X1와 Y1 좌표는 현재 마우스 위치로부터의 상대거리(offsets)으로 취급됩니다. 다른 말로, 커서는 현재 위치로부터 X1 픽셀 만큼 오른쪽으로 (음수이면 왼쪽으로) 그리고 Y1 픽셀 만큼 아래로 (음수이면 위로) 이동합니다. 비슷하게, X2와 Y2 좌표는 X1과 Y1 좌표로부터의 상대거리로 취급됩니다. 예를 들어, 다음은 먼저 그의 시작 위치로부터 커서를 아래로 오른쪽으로 5 픽셀 만큼 이동시킵니다. 그 다음에 그 위치로부터 마우스를 아래로 그리고 오른쪽으로 10 픽셀 만큼 끌어 놓습니다: MouseClickDrag, Left, 5, 5, 10, 10, , R.

논평

이 명령어는 SendMode에 의하여 설정된 전송 방법을 사용합니다.

끌기는 다양한 Send 명령어들을 통해서 달성할 수도 있습니다. 이 편이 더 유연합니다. 왜냐하면 명령어 이름을 통하여 모드를 지정할 수 있기 때문입니다. 예를 들어:

SendEvent {Click 6 52 Down}{Click 45 52 Up}

위의 방법의 또다른 장점은 MouseClickDrag와 다르게, 사용자가 제어판을 통하여 마우스 좌우 버튼을 바꾼 경우에도 자동으로 보상해 준다는 것입니다.

SendPlay 모드는 다른 모드들 보다 더 광범위한 게임에 성공적으로 마우스 이벤트를 만들 수 있습니다. 그렇지만, SendPlay를 통하여 끄는 것은 예를 들어 WordPad와 Metapad 같이 RichEdit 콘트롤에 작동하지 않을 가능성이 높습니다 (그리고 다른 것들도 마찬가지입니다).

어떤 어플리케이션과ㅏ 게임은 마우스가 너무 빨리 이동하면 추적하지 못할 수 있습니다. speed 매개변수나 SetDefaultMouseSpeed를 사용하면 그 속도를 줄일 수 있습니다 (기본 SendEvent 모드 전용).

BlockInput 명령어를 사용하면 사용자의 물리적인 마우스 활동 때문에 마우스 명령어로 생산되는 흉내낸 마우스 이벤트들이 어질러지는 것을 막을 수 있습니다. 그렇지만, 일반적으로 SendInput/Play 모드에는 불필요합니다. 왜냐하면 자동으로 사용자의 물리적 마우스 움직임을 뒤로 연기시켜 주기 때문입니다.

마우스의 클릭 다운과 클릭 업 사이에 자동 시간 지연이 있습니다 (SendInput 모드는 예외). 이 지연은 또 마우스가 끌기 연산을 하는 동안 이동 사이에서도 일어납니다. SetMouseDelay를 사용하면 지연시간을 변경할 수 있습니다.

CoordMode, SendMode, SetDefaultMouseSpeed, SetMouseDelay, Click, MouseClick, MouseGetPos, MouseMove, BlockInput

예제

Clicks and holds the left mouse button, moves the mouse cursor to the destination coordinates, then releases the button.

MouseClickDrag, left, 0, 200, 600, 400

MS Paint를 열어 작은 집을 그립니다.

Run, mspaint.exe
WinWaitActive, ahk_class MSPaintApp,, 2
if ErrorLevel
    return
MouseClickDrag, L, 150, 250, 150, 150
MouseClickDrag, L, 150, 150, 200, 100
MouseClickDrag, L, 200, 100, 250, 150
MouseClickDrag, L, 250, 150, 150, 150
MouseClickDrag, L, 150, 150, 250, 250
MouseClickDrag, L, 250, 250, 250, 150
MouseClickDrag, L, 250, 150, 150, 250
MouseClickDrag, L, 150, 250, 250, 250