ControlClick

마우스 버튼이나 마우스 휠 이벤트를 콘트롤에 보냅니다.

ControlClick , Control-or-Pos, WinTitle, WinText, WhichButton, ClickCount, Options, ExcludeTitle, ExcludeText

매개변수

Control-or-Pos

이 매개변수가 비어 있으면, 목표 창의 최상위 콘트롤이 클릭됩니다 (또는 콘트롤이 없으면 목표 창 자체가 클릭됩니다). 그렇지 않으면, 아래의 두 모드 중 하나가 사용됩니다.

Mode 1 (Position): 목표 창의 좌상 모서리에 상대적인 X와 Y 좌표를 지정하십시오. X 좌표가 Y 좌표보다 먼저 나와야 하고 적어도 하나의 탭이나 스페이스가 그 사이에 있어야 합니다. 예를 들어: X55 Y33. 지정된 좌표에 콘트롤이 있다면, 그 좌표에 정확하게 클릭 이벤트가 전송됩니다. 콘트롤이 없다면, 목표 창 자체에 그 이벤트가 전송됩니다 (창의 성질에 따라 아무 효과가 없을 수 있습니다).

주의: In mode 1, the X and Y option letters of the Options parameter are ignored.

Mode 2 (ClassNN 또는 Text): ClassNN (콘트롤의 클래스이름과 실체 번호) 또는 콘트롤의 이름/텍스트를 지정하십시오. 둘 모두 Window Spy로 알아낼 수 있습니다. 이름/텍스트를 사용할 때, 부합하는 창은 SetTitleMatchMode로 결정됩니다.

기본값으로 모드 2가 모드 1보다 우선 순위가 높습니다. 예를 들어, 혹시라도 한 콘트롤의 텍스트나 ClassNN이 "Xnnn Ynnn" 형식이라면, 그러면 Mode 2인 것처럼 작동할 것입니다. 이를 오버라이드해서 무조건 모드 1을 사용하려면, 단어 Pos를 Options에 다음 예제와 같이 지정하십시오: ControlClick, x255 y152, WinTitle,,,, Pos.

콘트롤의 HWND (창 핸들)에 작동시키라면, 이 매개변수를 빈 채로 두고 ahk_id %ControlHwnd%WinTitle 매개변수에 지정하십시오 (이것은 또한 숨은 창에도 작동합니다. DetectHiddenWindows가 꺼져 있어도 됩니다). 콘트롤의 HWND는 전형적으로ControlGet Hwnd, MouseGetPos, 또는 DllCall()을 통하여 열람됩니다.

WinTitle

목표 창을 식별하는 창 제목 또는 다른 기준. WinTitle 참조.

WinText

존재하면, 이 매개변수는 목표 창 텍스트의 부문자열입니다 (동봉된 Window Spy 유틸리티에 노출됨). 숨은 텍스트는 DetectHiddenText가 켜져 있어야 탐지됩니다.

WhichButton

클릭할 버튼: LEFT, RIGHT, MIDDLE (또는 그냥 각 첫 문자). 생략하거나 비어 있으면, LEFT 버튼이 사용됩니다.

X1 (XButton1, 네 번째 마우스 버튼) 그리고 X2 (XButton2, 다섯 번째 마우스 버튼)도 지원됩니다.

WheelUp (또는 WU) 그리고 WheelDown (또는 WD)도 지원됩니다. 이 경우, ClickCount는 휠을 돌릴 눈금의 개수입니다.

Windows Vista 이상 [v1.0.48+]: WheelLeft (또는 WL) and WheelRight (또는 WR)도 지원됩니다 (예전 운영 체제에서는 아무 효과도 없습니다). 이 경우, ClickCount는 휠을 돌릴 눈금의 개수입니다.

ClickCount

보낼 클릭 횟수, 표현식이 가능합니다. 생략되거나 비어 있으면, 1 클릭이 전송됩니다.

Options

다음 기호들이 옵션으로 사용됩니다. 예를 들어: d x50 y25.

NA [v1.0.45+]: 신뢰성을 개선할 수 있습니다. 아래의 신뢰성을 참조하십시오.

D: 마우스 버튼을 누르지만 떼지 않습니다 (즉, 누르기-이벤트 발생). DU 옵션이 모두 없으면, (누르고 뗀) 완전한 클릭이 전송됩니다.

U: 마우스 버튼을 뗍니다 (즉 뗌-이벤트 발생). 이 옵션은 D 옵션이 이미 있으면 나타나면 안됩니다 (그 반대도 마찬가지입니다).

Pos: 단어 Pos를 Options 아무데나 지정하면, 위의 Control-or-Pos 매개변수에 기술되어 있듯이 무조건 X/Y 위치 지정 모드를 사용합니다.

Xn: n에다 클릭할 X 위치를 지정합니다. 이 위치는 콘트롤의 좌상 모서리에 상대적입니다. 지정하지 않으면, 클릭이 콘트롤의 수평-중앙에 일어납니다.

Yn: n에다 클릭할 Y 위치를 지정합니다. 이 위치는 콘트롤의 좌상 모서리에 상대적입니다. 지정하지 않으면 클릭이 수직-중앙에 일어납니다.

XY 옵션에 십진수를 사용합니다 (십육진수 불가).

ExcludeTitle

제목에 이 값이 있는 창은 무시합니다.

ExcludeText

텍스트에 이 값이 있는 창은 무시합니다.

에러 처리

[v1.1.04+]: 이 명령어는 실패하면 예외를 던질 수 있습니다. 더 자세한 정보는 실행시간 에러를 참조하십시오.

ErrorLevel은 문제가 있으면 1, 그렇지 않으면 0이 설정됩니다.

신뢰성

신뢰성을 개선하려면 -- 특히 ControlClick이 작동하는 동안 사용자가 물리적으로 마우스를 움직이면 -- 다음 방법이 도움이 될 것입니다:

1) ControlClick 전에 SetControlDelay -1를 사용합니다. 이렇게 하면 클릭하는 동안 마우스를 누르고 있을 필요가 없습니다. 이 덕분에 사용자의 물리적 마우스 이동과의 간섭 가능성이 줄어듭니다.

2) 아래와 같이 문자열 NA를 여섯 번째 매개변수 아무데나 (Options) 지정합니다:

SetControlDelay -1
ControlClick, Toolbar321, WinTitle,,,, NA

NA를 지정하면 목표 창을 활성화 상태로 표식을 할 필요가 없고 그의 입력 처리를 스크립트이 입력 처리와 병합할 필요가 없습니다. 이 덕분에 마우스의 물리적 이동 때문에 간섭 받지 않아도 됩니다 (그러나 보통 목표 창이 비활성화 상태일 경우에만 그렇습니다). 그렇지만, 이 방법은 모든 유형의 창과 콘트롤에 작동하는 것은 아닙니다.

논평

모든 어플리케이션이 마우스 휠을 돌릴 때 1보다 큰 ClickCount를 준수하는 것은 아닙니다. 그런 어플리케이션이라면 Loop를 사용해 한 눈금 이상 휠을 돌리십시오. 다음 예제는 다섯 눈금을 돌리고 있습니다:

Loop, 5
    ControlClick, Control, WinTitle, WinText, WheelUp

창 제목과 텍스트는 대소문자를 구분합니다. 숨은 창은 DetectHiddenWindows가 켜져 있어야 탐지됩니다.

SetControlDelay, Control, ControlGet, ControlGetText, ControlMove, ControlGetPos, ControlFocus, ControlSetText, ControlSend, Click

예제

OK 버튼을 클릭합니다

ControlClick, OK, Some Window Title

좌표 세트를 클릭합니다. X와 Y 사이에 쉼표가 없는 것에 주목하십시오.

ControlClick, x55 y77, Some Window Title

지정한 이름의 콘트롤에 상대적인 좌표를 NA 모드에서 클릭합니다.

SetControlDelay -1  ; May improve reliability and reduce side effects.
ControlClick, Toolbar321, Some Window Title,,,, NA x192 y10