Control
콘트롤에 다양한 변경을 합니다.
Control, Cmd [, Value, Control, WinTitle, WinText, ExcludeTitle, ExcludeText]
매개변수
- Cmd, Value
아래 리스트 참조.
- Control
ClassNN (콘트롤의 클래스이름과 실체 번호) 또는 콘트롤의 텍스트일 수 있습니다. 둘 다 Window Spy를 통하여 알아낼 수 있습니다. 텍스트를 사용할 때, 부합하는 행위는 SetTitleMatchMode로 알아냅니다. 이 매개변수가 비어 있으면, 목표 창의 최상위 콘트롤이 사용됩니다.
콘트롤의 HWND (창 핸들)에 작동하게 하려면, Control 매개변수를 빈 채로 두고
ahk_id %ControlHwnd%
를 WinTitle 매개변수에 지정하십시오 (이 방법은 숨은 콘트롤에도 작동합니다. 심지어 DetectHiddenWindows가 꺼져 있어도 됩니다). 콘트롤의 HWND는 전형적으로 ControlGet Hwnd, MouseGetPos, 또는DllCall을 통하여 열람합니다.- WinTitle
창 제목 또는 목표 창을 식별하는 기타 기준. WinTitle 참조.
- WinText
존재하면, 목표 창 텍스트의 부문자열입니다 (Window Spy에 노출됨). 숨은 텍스트는 DetectHiddenText가 켜져 있어야 탐지됩니다.
- ExcludeTitle
제목에 이 값이 있는 창은 무시합니다.
- ExcludeText
텍스트에 이 값이 있는 창은 무시합니다.
Cmd, Value
Cmd와 Value 매개변수는 서로 의존합니다. 그리고 그 사용법은 아래에 기술합니다.
Check: 라디오 버튼이나 체크 박스를 켭니다 (체크 표시를 함).
Uncheck: 라디오 버튼이나 체크 박스를 끕니다.
Enable: 이전에 꺼져 있다면 콘트롤을 켭니다.
Disable: 콘트롤을 불능화합니다 ("회색 처리를 함").
Show: 이전에 숨어 있었다면 콘트롤을 보여줍니다.
Hide: 콘트롤을 감춥니다. 콘트롤의 단축 키(밑줄 문자)를 작동하지 못하도록 막고 싶다면, Control Disable
을 통하여 콘트롤을 끄십시오.
Style, N 또는 ExStyle, N: 콘트롤의 스타일이나 확장 스타일을 변경합니다. N 첫 문자가 플러스 또는 마이너스 사인이면 N에 있는 스타일이 추가되거나 제거됩니다. 첫 문자가 캐럿 (^)이면, N에 있는 스타일들이 각각 반대 상태로 토글됩니다. 첫 문자가 숫자이면, 그 콘트롤의 스타일이 완전히 덮여 씌여집니다; 즉, N이 됩니다. ErrorLevel은 목표 창/콘트롤이 발견되지 않으면 또는 스타일이 적용되지 않으면 1이 설정됩니다.
어떤 스타일 변경은 WinSet Redraw를 사용하여 전체 창을 다시 그리기를 요구합니다. 또, 스타일 테이블에 스타일 번호들을 나열하고 있습니다. 예를 들어:
Control, Style, ^0x800000, Edit1, WinTitle ; WS_BORDER 스타일을 그의 반대 상태로 설정합니다.
ShowDropDown: 선택이 보이도록 ComboBox 메뉴를 내립니다.
HideDropDown: 위를 반대로 합니다.
TabLeft [, Count] 그리고 TabRight [, Count]: SysTabControl32에서 하나 이상의 탭만큼 오른쪽 왼쪽으로 이동합니다. Count는 생략하거나 비어 있으면 1로 간주됩니다. 대신에 탭을 직접적으로 번호로 선택하려면, 아래의 숫자 5를 이 보다 작은 숫자로 교체하십시오. 원하는 탭 번호로 교체하시면 됩니다. 다른 말로 하면, 0은 첫 번째 탭을 선택하고, 1은 두 번째 탭을 선택합니다. 등등:
SendMessage, 0x1330, 5,, SysTabControl321, WinTitle ; 0x1330 is TCM_SETCURFOCUS. Sleep 0 ; 이 줄과 다음 줄은 어떤 탭 콘트롤에는 꼭 필요합니다. SendMessage, 0x130C, 5,, SysTabControl321, WinTitle ; 0x130C is TCM_SETCURSEL.
Add, String: 문자열(String)을 새 엔트리로 ListBox, ComboBox (그리고 가능한 다른 유형들) 아래에 추가합니다.
Delete, N: N번째 엔트리를 ListBox 또는 ComboBox로부터 제거합니다. N은 첫 엔트리에 대하여 1이 되고 두 번째 엔트리는 2가 됩니다. 등등.
Choose, N: ListBox 또는 ComboBox에서 N번째 엔트리를 선택합니다. N은 첫 엔트리에 1, 두 번째 엔트리에 2가 됩니다. 등등. 다중-선택 리스트박스에서 모든 항목을 선택하거나 해제하려면, 다음 예제를 따르십시오:
PostMessage, 0x185, 1, -1, ListBox1, WinTitle ; Select all listbox items. 0x185 is LB_SETSEL.
ChooseString, String: 앞 부분이 String에 부합하는 첫 번째 엔트리를 ListBox 또는 ComboBox에서 선택합니다. 검색은 대소문자를 구분하지 않습니다. 예를 들어, ListBox/ComboBox에 "UNIX Text"라는 항목이 들어 있다면, 단어를 unix (소문자)로 지정해도 충분히 선택할 수 있습니다.
EditPaste, String: Edit 콘트롤에서 String을 캐럿/삽입 위치에 붙여 넣습니다 (클립보드의 내용은 영향을 받지 않습니다).
ErrorLevel
[v1.1.04+] 이 명령어는 실패하면 예외를 던질 수 있습니다. 더 자세한 정보는 실행시간 에러를 참조하십시오.
ErrorLevel은 문제가 있으면 1이 설정되고 그렇지 않으면 0이 설정됩니다.
논평
신뢰성을 개선하기 위하여, 이 명령어를 사용할 때마다 자동으로 지연 시간이 있습니다 (Style과 ExStyle 제외). 그 지연 시간은 SetControlDelay를 통하여 변경할 수 있습니다.
현재 마우스가 올라와 있는 콘트롤의 ClassNN 또는 HWND를 알아내려면, MouseGetPos를 사용하십시오.
창 제목과 텍스트는 대소문자에 민감합니다. 숨은 창은 DetectHiddenWindows가 켜져 있어야 탐지됩니다.
관련 항목
SetControlDelay, ControlGet, GuiControl, ControlGetText, ControlSetText, ControlMove, ControlGetPos, ControlClick, ControlFocus, ControlSend, WinSet
예제
Control, HideDropDown, , ComboBox1, Some Window Title