마우스 버튼이나 마우스 휠 이벤트를 콘트롤에 보냅니다.
ControlClick , Control-or-Pos, WinTitle, WinText, WhichButton, ClickCount, Options, ExcludeTitle, ExcludeText
이 매개변수가 비어 있으면, 목표 창의 최상위 콘트롤이 클릭됩니다 (또는 콘트롤이 없으면 목표 창 자체가 클릭됩니다). 그렇지 않으면, 아래의 두 모드 중 하나가 사용됩니다.
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 참조.
존재하면, 이 매개변수는 목표 창 텍스트의 부문자열입니다 (동봉된 Window Spy 유틸리티에 노출됨). 숨은 텍스트는 DetectHiddenText가 켜져 있어야 탐지됩니다.
클릭할 버튼: LEFT, RIGHT, MIDDLE (또는 그냥 각 첫 문자). 생략하거나 비어 있으면, LEFT 버튼이 사용됩니다.
X1 (XButton1, 네 번째 마우스 버튼) 그리고 X2 (XButton2, 다섯 번째 마우스 버튼)도 지원됩니다.
WheelUp (또는 WU) 그리고 WheelDown (또는 WD)도 지원됩니다. 이 경우, ClickCount는 휠을 돌릴 눈금의 개수입니다.
Windows Vista 이상 [v1.0.48+]: WheelLeft (또는 WL) and WheelRight (또는 WR)도 지원됩니다 (예전 운영 체제에서는 아무 효과도 없습니다). 이 경우, ClickCount는 휠을 돌릴 눈금의 개수입니다.
보낼 클릭 횟수, 표현식이 가능합니다. 생략되거나 비어 있으면, 1 클릭이 전송됩니다.
다음 기호들이 옵션으로 사용됩니다. 예를 들어: d x50 y25
.
NA [v1.0.45+]: 신뢰성을 개선할 수 있습니다. 아래의 신뢰성을 참조하십시오.
D: 마우스 버튼을 누르지만 떼지 않습니다 (즉, 누르기-이벤트 발생). D와 U 옵션이 모두 없으면, (누르고 뗀) 완전한 클릭이 전송됩니다.
U: 마우스 버튼을 뗍니다 (즉 뗌-이벤트 발생). 이 옵션은 D 옵션이 이미 있으면 나타나면 안됩니다 (그 반대도 마찬가지입니다).
Pos: 단어 Pos를 Options 아무데나 지정하면, 위의 Control-or-Pos 매개변수에 기술되어 있듯이 무조건 X/Y 위치 지정 모드를 사용합니다.
Xn: n에다 클릭할 X 위치를 지정합니다. 이 위치는 콘트롤의 좌상 모서리에 상대적입니다. 지정하지 않으면, 클릭이 콘트롤의 수평-중앙에 일어납니다.
Yn: n에다 클릭할 Y 위치를 지정합니다. 이 위치는 콘트롤의 좌상 모서리에 상대적입니다. 지정하지 않으면 클릭이 수직-중앙에 일어납니다.
X와 Y 옵션에 십진수를 사용합니다 (십육진수 불가).
제목에 이 값이 있는 창은 무시합니다.
텍스트에 이 값이 있는 창은 무시합니다.
[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