AutoHotKey(오토핫키) 설명서 Gui,Add

Posted by 발전소장
2014. 8. 14. 00:49 AutoHotKey/Commands

Gui,Add

GUI윈도우에 컨트롤을 추가한다

Gui, Add, ControlType [, Options, Text]

Parameters

인수명설명
ControlType 추가하는 컨트롤의 종류.
현재로서는, 이하의 것이 있다.
자세한 것은 각각의 항을 참조.
Options 각종의 설정을 반각 스페이스에서 단락지어 지정한다.
모든 컨트롤 종별로 공통의 것에 대해서는 후술.
고유의 것에 대해서는, 각각의 컨트롤의 항을 참조.
Text 컨트롤에 표시되는 캡션등을 지정한다.
ControlType에 따라서는, 특수한 지정이 필요한 것도 있다.
자세한 것은 각각의 컨트롤의 항을 참조.

Options

배치 관계

Xn
n에 컨트롤의 수평 위치를 윈도우의 클라이언트 영역의 좌상으로부터의 상대 좌표로 지정.(례:X100)
생략시는 자동적으로 결정된다.
Yn
n에 컨트롤의 수직 위치를 윈도우의 클라이언트 영역의 좌상으로부터의 상대 좌표로 지정.
생략시는 자동적으로 결정된다.
x+n
컨트롤의 수평 위치를, 직전에 추가한 컨트롤의 우단으로부터의 거리로 지정한다.n에는 부의 값도 지정 가능(례:x+-10)
y+n
컨트롤의 수직 위치를, 직전에 추가한 컨트롤의 하단으로부터의 거리로 지정한다.n에는 부의 값도 지정 가능(례:y+-10)
xp+n
컨트롤의 수평 위치를, 직전에 추가한 컨트롤의 좌단으로부터의 거리로 지정한다.
GroupBox의 안쪽에 컨트롤을 배치하고 싶을 때에 사용한다.
yp+n
컨트롤의 수직 위치를, 직전에 추가한 컨트롤의 상단으로부터의 거리로 지정한다.
GroupBox의 안쪽에 컨트롤을 배치하고 싶을 때에 사용한다.
xm[+n|-n|]
컨트롤의 수평 위치를, 좌단으로 설정한다.「x0」라고 달라, 마진(Remarks참조)(은)는 고려된다.
「xm+100」(이)나 「xm-10」(와)과 같이 수치를 지정하면, 마진을 고려한 좌단으로부터 한층 더 지정 피크셀만 늦추어서 배치된다.
ym[+n|-n|]
컨트롤의 수직 위치를, 상단으로 설정한다.「y0」라고 달라, 마진(Remarks참조)(은)는 고려된다.
「ym+100」(이)나 「ym-10」(와)과 같이 수치를 지정하면, 마진을 고려한 상단으로부터 한층 더 지정 피크셀만 늦추어서 배치된다.
Section
그 컨트롤의 위치를 그 후 사용된다xs,ys옵션을 위한 기준 위치로 설정한다.
제일 최초로 배치되는 컨트롤은, 자동적으로 기준 위치로 설정된다.
xs[+n|-n|]
컨트롤의 수평 위치를,Section그리고 설정한 컨트롤과 같은 위치로 설정한다.
「xm+100」(이)나 「xm-10」(와)과 같이 수치를 지정하면, 지정 피크셀만 늦춘 위치로 설정된다.
ys[+n|-n|]
컨트롤의 수직 위치를,Section그리고 설정한 컨트롤과 같은 위치로 설정한다.
「ym+100」(이)나 「ym-10」(와)과 같이 수치를 지정하면, 지정 피크셀만 늦춘 위치로 설정된다.
Wn
n에 컨트롤의 가로폭을 피크셀수로 지정한다.
생략시는, 일부의 컨트롤은Text인수의 내용이 들어가도록(듯이) 자동 설정되어 그 이외의 경우는 font size의15배로 설정된다.
Hn
n에 컨트롤의 높이를 피크셀수로 지정한다.
H옵션과R의 모두 지정되지 않았던 경우, 높이는 자동적으로 결정된다.
DropDownList,ComboBox그럼, 전개된 드롭 다운의 높이의 지정이 된다.(지정하지 않으면 스크린의 높이 가득 전개된다)
wp[+n|-n]
직전에 배치한 컨트롤의 폭으로부터의 상대치로 폭을 지정한다.
「wp」(이)라면 전의 컨트롤과 같은 폭, 「wp+10」(이)라면10피크셀 넓고, 「wp-10」(이)라면10피크셀 좁아진다.
hp[+n|-n]
직전에 배치한 컨트롤의 높이로부터의 상대치로 높이를 지정한다.
Rn
컨트롤의 높이를 텍스트의 행수로 지정.
n에 행수를 지정한다.소수로의 지정도 가능.
H옵션과 함께 사용했을 경우,R옵션 쪽이 우선된다.
GroupBox그럼, 세로 방향에 늘어놓을 수가 있는 컨트롤의 수가 된다.
DropDownList,ComboBox그럼, 전개된 드롭 다운에 한 번에 표시되는 항목수가 변경된다.

실행 제어 관계

Vn
컨트롤의 입력 내용을 취득하는 변수명을 설정.
n에 변수명을 지정한다.(례:「vName」)
글로벌 변수나 함수내의 스태틱 변수,ByRef인수로 건네받은 글로벌 변수를 지정할 수 있다.
입력 내용을 변수에 반영시키려면 , 「GUI, Submit」(을)를 실행할 필요가 있다.
유저가 값을 입력하는 타입의 컨트롤 이외에도, 변수를 할당해 두는 것으로 「GuiControl」(이)나 「GuiControlGet」커멘드로, 할당한 변수명을 사용해 컨트롤을 지정할 수 있다.
Gn
그 컨트롤이 클릭이나 선택의 변경등의 조작을 하셨을 때에 실행되는 써브루틴을 설정한다.
n에 써브루틴 라벨을 지정한다.
예를 들어, 「gClicked」라고 지정하면 「Clicked」라고 하는 써브루틴이 실행되게 된다.
「gCancel」라고 하는 지정은 특수하고, 「Cancel」라고 하는 라벨이 존재하지 않는 경우, 「GUI, Cancel」의 동작이 대신에 실행되게 된다.
실행되는 써브루틴내에서는, 편입 변수A_GuiControlEvent그리고 더블 클릭 등 특수한 조작을 하신 것을 알 수 있다.(Text,Pictrue,Radio,ListBox등)
HwndN
N그리고 지정한 이름의 변수에 작성된 컨트롤의 윈도우 핸들을 격납한다.(례:「HwndHandle」)
Gui,Add시간만 유효.

스타일 관계

Redraw
표시 내용에 변화가 있었을 때에 재묘화를 실시한다.
디폴트로ON(이)가 되어 있다.
리스트뷰등에서 대량의 항목을 추가·삭제·변경하기 전에GuiControl,-Redraw,ControlID그리고 재묘화를 정지해, 종료후에+Redraw그리고 재개시키는 것으로 퍼포먼스를 개선할 수 있다.
Cn
문자색을 지정.n에색의 이름(이)나RRGGBB형식의 칼라 코드와 함께 지정한다.(례1:cRed,례2:cFFCC99)
BackGround
Gui,Color그리고 설정한 컨트롤의 배경색을 적용한다(디폴트)
「-BackGround」라고 지정하는 것으로, 설정을 무시해 시스템의 디폴트 배색을 사용한다.
Disabled
컨트롤을 조작할 수 없게 한다
Disabled0/Disabled1(으)로 하는 것으로, 조작 가능/불가능하게 하는 일도 가능.
Hidden
컨트롤을 최초부터 비표시로 한다.
Control, Show」(으)로 표시 당한다.
Hidden0/Hidden1(으)로 하는 것으로, 표시/비표시로 하는 일도 가능.
Left
Button의 텍스트를 왼쪽 가지런히 해로 한다
Right
텍스트를 오른쪽맞춤으로 한다
CheckBox(이)나RadioButton그럼, 체크 박스의 부분도 우측이 된다.
Center
텍스트를 centering로 한다
-TabStop
Tab키에 의한 포커스의 이동으로 이동 대상으로 하지 않는다
-Wrap
텍스트가 가로폭에 들어가지 않는 경우에, 자동적으로 반환을 실시하지 않게 한다.
(일부의 환경에서는,CheckBox(와)과RadioBox의 가로폭의 자동 산출이 이상하고, 가로폭을 지정하지 않으면1문자만 부족하게 되어2행에 되접어 꺾여 버리므로, 이 옵션으로 반환을 잃으면 좋다)
VScroll/-VScroll
세로 스크롤 바를 표시한다(일부의 종류의 컨트롤에서만 유효)
HScroll/-HScroll
옆스크롤 바를 표시한다(일부의 종류의 컨트롤에서만 유효)
ListBox그럼, 스크롤 할 수 있는 폭이 강제적으로 윈도우의 폭의3배에 고정된다.
「HScroll200」(와)과 같이 후에 수치를 지정하면, 스크롤 할 수 있는 폭을 지정할 수 있다.
Border
컨트롤의 주위에 테두리를 표시한다.
Theme/-Theme
컨트롤 마다WindowsXP의 테마를 적용할지를 설정한다.
[+/-]0xNNNNNNNN
컨트롤의 스타일을8자리수의16진수치로 지정한다.
자세한 것은스타일 일람(을)를 참조.
부호가 생략 되었을 경우는, 「+」라고 보인다.
[+/-]E0xNNNNNNNN
컨트롤의 확장 스타일을8자리수의16진수치로 지정한다.
자세한 것은스타일 일람(을)를 참조.
부호가 생략 되었을 경우는, 「+」라고 보인다.

Remarks

윈도우에 최초로 컨트롤을 추가할 경우에, 자동적으로 윈도우가 작성된다.

X/Y옵션으로 좌표를 지정하지 않았던 경우, 컨트롤의 위치는 자동적으로 결정된다.
최초로 추가되는 컨트롤은, 윈도우의 좌상에 배치되어 2번째 이후의 컨트롤은, 직전의 컨트롤의 아래 쪽에 다른 컨트롤과 겹치지 않게 배치된다.
X/Y 중 다른 한쪽만 지정했을 경우, 또 하나의 좌표만이 자동적으로 결정된다.

컨트롤의 사이즈도, 컨트롤의 종류나 텍스트의 내용등에 의해서 자동적으로 결정된다.

자동 레이아웃시에는, 다른 컨트롤로부터 일정한 간격을 열어서 배치된다.
상하의 간격은 선택되고 있는 폰트의 높이의1.25배, 좌우의 간격은0.75배가 된다.
Gui,Show」(으)로 윈도우가 최초로 표시될 때도, 폭이나 높이가 지정되지 않는 이상 이 마진을 고려해 사이즈가 결정된다.

Related

GUI


AutoHotKey(오토핫키) 설명서 GUI

Posted by 발전소장
2014. 8. 14. 00:48 AutoHotKey/Commands

GUI

입력 폼 등에 사용할 수 있다GUI(을)를 작성/조작한다

아래와 같은 서브 커멘드가 있다.
설명의 양이 많기 때문에 항을 나눈다.

GUI, Add, ControlType [, Options, Text]
윈도우에 컨트롤을 추가한다
추가할 수 있는 컨트롤에는 이하의 것이 있다.
Text, Edit, UpDown, Hotkey, Picture, GroupBox, Button, Checkbox, Radio, DropDownList, ComboBox, ListBox, ListView, Slider, Progress, DateTime, MonthCal, Tab
GUI, Tab [, Item, ControlNo]
탭 콘트롤이 있을 때, 향후 배치하는 컨트롤을 어느 탭 시트에 배치하는지를 변경
GUI,ListView,ListViewName
리스트뷰 조작계 함수로 대상이 되는 리스트뷰를 변경한다.
GUI, Menu [, MenuName]
윈도우에 도구모음을 추가/삭제한다
GUI, Color [, WindowColor, ControlColor]
윈도우 및 컨트롤의 배경색을 설정한다
GUI, Font [, Options, FontName]
이 이후에 추가되는 컨트롤의 폰트를 변경한다
GUI, Margin [,X, Y]
컨트롤 위치의 자동 결정시에 시작될 수 있는 마진을 설정
GUI, Show [, Options, Title]
윈도우를 표시/표시 상태의 변경
GUI, Hide
윈도우를 비표시로 한다
GUI, Maximize
윈도우를 최대화한다
GUI, Minimize
윈도우를 최소화한다
GUI, Restore
윈도우를 바탕으로 되돌린다
GUI, Flash [,Off]
윈도우의 타이틀 바와 태스크바의 색을 반전시킨다.이것을 이용해 타이틀 바를 점멸시킬 수 있다.
GUI, Submit [, NoHide]
컨트롤 상태나 내용을 지정된 변수에 반영시킨다
GUI, Cancel
변수에 내용을 반영시키지 않고 , 윈도우를 비표시로 한다
GUI, Destroy
윈도우를 완전하게 파기해, 메모리나 system resource를 개방한다
GUI, +/-Option
윈도우의 옵션을 추가/삭제한다
GUI, Default
디폴트의 윈도우를 변경한다

Remarks

윈도우의 생성

윈도우는Add그리고 최초로 컨트롤이 배치될 때 만들어진다.
윈도우의클래스명(은)는 「AutoHotkeyGUI」.
Gui,Show그리고 타이틀을 지정해 표시하기 전의 타이틀은, 스크립트의 파일명 부분.

복수 윈도우

스크립트는 최대로99의 윈도우를 가질 수 있다.
각 윈도우에는 최대11000개의 컨트롤을 배치할 수 있다.
디폴트 이외의 윈도우를 조작하려면 , 서브 커멘드의 전에 「2:」(와)과 같이 윈도우 번호와 코론을 추가한다.

Gui, 2:Add, Text,, Text for about box.
Gui, 2:Show

기본적으로 디폴트의 윈도우 번호는 「1」이지만,2번째 이후의 윈도우상의GUI조작 이벤트(컨트롤의 조작시나 도구모음의 아이템 등)그리고 실행된 스렛드에서는, 그 윈도우가 디폴트 윈도우가 된다.
디폴트 윈도우는,Gui,2:Default(와)과 같이 해 변경할 수 있다.

Font서브 커멘드로의 폰트의 설정은, 윈도우 마다 보관 유지된다.

특수 써브루틴 라벨

GuiEscape,GuiClose등이 특별한 이름의써브루틴 라벨하지만 존재하면, 윈도우에 대해서 특정의 조작을 했을 때 그 써브루틴이 실행되게 된다.
현재 준비되어 있는 특수 써브루틴에는 이하의 것이 있다.

2번째 이후의 윈도우의 이벤트는, 「2GuiEscape」(와)과 같이 전에 숫자를 추가한 이름의 라벨로 정의한다.

GuiEscape
Escape키를 눌렀을 때에 실행된다.
라벨이 존재하지 않는 경우,Escape키를 눌러도 아무것도 일어나지 않는다.
GuiClose
윈도우를 닫으려고 했을 때에 실행된다.
라벨이 존재하지 않는 경우, 윈도우는 단지 비표시가 된다(Gui,Cancel(와)과 같은 동작)
GuiSize
윈도우가 리사이즈, 최소화, 최대화, 복원되었을 때에 실행된다.
A_GuiWidth,A_GuiHeight변수에 클라이언트 영역의 새로운 폭과 높이가 격납된다.
또,A_EventInfo변수와ErrorLevel변수에 이하의 값이 격납된다.
0
리사이즈 또는 최대화·최소화로부터의 복원
1
최소화
2
최대화
GuiDropFiles
파일이나 폴더가 드러그&드롭 되었을 때에 실행된다.
이 이벤트의 스렛드가 실행되고 있는 동안은, 드러그&드롭은 무시된다.
A_GuiEvent변수와A_GuiControlEvent변수에는 드롭 된 파일의 파일명이 개행 단락으로 격납된다.
A_GuiControl변수에는 드롭처의 컨트롤에 관련지을 수 있었던 변수명인가, 그것이 없으면 컨트롤의 텍스트가 격납된다.컨트롤에 드롭 되었으므로 없으면, 비운다.
A_EventInfo변수와ErrorLevel변수에는, 드롭 된 파일의 수가 격납된다.
GuiX(와)과GuiY변수에는, 드롭을 한 좌표가 윈도우의 좌상으로부터의 상대 좌표로 격납된다.
Gui,-E0x00000010」(으)로 확장 스타일WS_EX_ACCEPTFILES(을)를 해제하면, 일시적으로 드러그&드롭 접수를 무효로 할 수 있다.
Gui,+E0x00000010」(으)로 다시 유효하게 할 수 있다.
GuiContextMenu
윈도우의 타이틀 바와 도구모음을 제외한 클라이언트 부분을 오른쪽 클릭했을 때에 실행된다.Apps키나Shift+F10(을)를 눌렀을 때에도 실행된다.
이 써브루틴은, 벌써 스렛드가 실행중에서도 새롭게 실행 개시된다.
A_GuiEvent변수에는, 오른쪽 클릭에 의한 이벤트 발생이라면 「RightClick」(이)가, 키 조작에 의한 발생이라면 「Normal」(이)가 격납된다.
A_GuiControl변수에는 클릭된 컨트롤에 관련지을 수 있었던 변수명인가, 그것이 없으면 컨트롤의 텍스트가 격납된다.컨트롤이 클릭되었으므로 없으면, 비운다.
A_EventInfo변수에는, 리스트 박스나 리스트뷰의 포커스를 가지는 행 번호가 격납된다.(다만, 오른쪽 클릭에서는 포커스는 이동하지 않는다)1행목은 「1」(이)가 된다.리스트 박스나 리스트뷰가 아니면 「0」(이)가 된다.
GuiX(와)과GuiY변수에는, 이벤트가 발생했을 때의 마우스 커서의 좌표가 윈도우의 좌상으로부터의 상대 좌표로 격납된다.키 조작에 의해서 기동되었을 때에도 똑같이 격납된다.

아래와 같이 써브루틴의 전에 복수의 라벨을 쓰면, 복수의 이벤트에 하나의 동작을 할당할 수 있다.

GuiEscape:
GuiClose:
ButtonCancel:
Gui, Cancel ; All of the above labels will execute this subroutine.
return 

GUI커멘드의 테스트를 할 때는, 아래와 같은 할당이 추천.
보통으로 윈도우를 닫은 것 만으로는 스크립트가 종료하지 않기 때문에, 윈도우를 닫았을 때에 스크립트가 종료하도록(듯이) 해 준다.

GuiClose:
ExitApp

Button컨트롤의 디폴트 써브루틴 라벨

Button컨트롤에서는, 「G」옵션으로 써브루틴을 지정하지 않아도, 자동적으로 디폴트의 라벨을 할당할 수 있다.
예를 들어,Text인수가 「Text」의 버튼에서는, 「ButtonText」라고 하는 라벨에 할당할 수 있다.(해당하는 라벨이 존재하면)
다만,Text인수에 반각 스페이스나 「&」, 개행 문자등이 포함되는 경우, 그러한 문자를 제외한 문자열이 사용된다.

2번째 이후의 윈도우의 버튼에 대해서는, 「2ButtonText」(와)과 같은 최초로 윈도우 번호를 매긴 이름의 라벨에 할당할 수 있다.

GUI,Add,Button,,Exit

ButtonExit:
ExitApp

Tab네비게이션

작성한 윈도우는, 일반적인 윈도우와 같이Tab키로 포커스를 다른 컨트롤로 이동할 수 있다.
이동하는 순서는, 컨트롤이 윈도우에 추가된 차례.
윈도우가 표시될 때는, 최초의NoTab옵션을 지정되어 있지 않은 포커스도 비치는 컨트롤에 포커스가 세트 된다.

액세스 키

일부의 컨트롤은, 텍스트에 「&A」(와)과 같이&+영숫자를 넣는 것으로, 액세스 키를 설정할 수 있다.
액세스 키는 「A」(와)과 같이 언더라인 첨부의 문자로 표시되어Alt+문자 키로 그 컨트롤을 클릭했을 때의 동작을 한다.
Text(이)나GroupBox그럼, 다음에 추가한 컨트롤에 포커스가 옮긴다.
복수의 컨트롤에 같은 액세스 키를 할당할 수 있고 있는 경우, 액세스 키를 누를 때 마다 다음의 해당하는 컨트롤에 포커스가 이동한다.

「&&」라고 쓰는 것으로, 텍스트중에 「&」(을)를 표시할 수 있다.

자동 레이아웃

컨트롤을 추가할 때,X/Y옵션으로 좌표를 지정하지 않았던 경우, 컨트롤의 위치는 자동적으로 결정된다.
최초로 추가되는 컨트롤은, 윈도우의 좌상에 배치되어 2번째 이후의 컨트롤은, 직전의 컨트롤의 아래 쪽에 다른 컨트롤과 겹치지 않게 배치된다.
X/Y 중 다른 한쪽만 지정했을 경우, 또 하나의 좌표만이 자동적으로 결정된다.

컨트롤의 사이즈도, 컨트롤의 종류나 텍스트의 내용등에 의해서 자동적으로 결정된다.

자동 레이아웃시에는, 다른 컨트롤로부터 일정한 간격을 열어서 배치된다.
디폴트에서는, 상하의 간격은 선택되고 있는 폰트의 높이의1.25배, 좌우의 간격은0.75배가 된다.
마진의 폭은,Gui,Margin」(으)로 변경할 수 있다.
Gui,Show」(으)로 윈도우가 최초로 표시될 때도, 폭이나 높이가 지정되지 않는 이상 이 마진을 고려해 사이즈가 결정된다.

윈도우의 아이콘

윈도우의 아이콘에는, 윈도우가 작성될 때 task tray 아이콘으로 하고 사용되고 있던 아이콘이 사용된다.
task tray 아이콘은 「Menu, Tray, Icon」(으)로 설정할 수 있다.

이벤트 호출시의LastFoundWindow

윈도우 컨트롤의 조작에 의해서 신규 스렛드로 써브루틴이 불려 갈 때 ,LastFoundWindow(으)로서 컨트롤을 가지는 윈도우가 기억된다.
이것에 의해, 각종 윈도우 조작 커멘드로 해당 윈도우를 조작하고 싶을 때, 윈도우의 지정을 생략 할 수 있다.

상주

GUI커멘드를 포함하고 있는 스크립트는,상주 상태한편#SingleInstance(복수 실행 불가)(이)가 된다.

컨트롤의 조작

작성했다GUI위의 컨트롤을 조작하려면 ,GuiControl,GuiControlGet커멘드를 사용한다.

Related

GuiControl, GuiControlGet, Menu, Control, ControlGet, SplashImage, MsgBox, FileSelectFile, FileSelectFolder

Example(s)

Example #1: Simple input-box

Gui, add, text,, First name:
Gui, add, text,, Last name:
Gui, add, edit, vFirstName ym  ; The ym option starts a new column of controls.
Gui, add, edit, vLastName
Gui, add, button, default, OK  ; The label ButtonOK (if it exists) will be run when the button is pressed.
Gui, show,, Simple Input Example
return  ; End of auto-execute section. The script is idle until the user does something.

GuiClose:
ButtonOK:
Gui, submit  ; Save the input from the user to each control's associated variable.
MsgBox You entered "%FirstName% %LastName%".
ExitApp

Example #2: Tab control

Gui, add, tab,, First Tab|Second Tab|Third Tab
Gui, add, checkbox, vMyCheckbox, Sample checkbox
Gui, tab, 2
Gui, add, radio, vMyRadio, Sample radio1
Gui, add, radio,, Sample radio2
Gui, tab, 3
Gui, add, edit, vMyEdit r5  ; r5 means 5 rows tall.
Gui, tab  ; i.e. subsequently-added controls will not belong to the tab control.
Gui, add, button, default xm, OK  ; xm puts it at the bottom left corner.
Gui, show
return

ButtonOK:
GuiClose:
GuiEscape:
Gui, submit
MsgBox You entered:`n%MyCheckbox%`n%MyRadio%`n%MyEdit%
ExitApp

Example #3: ListBox containing files in a directory

Gui, Add, Text,, Pick a file to launch from the list below.`nTo cancel, press ESCAPE or close this window.
Gui, Add, ListBox, vMyListBox gMyListBox w640 r10
Gui, Add, Button, Default, OK
Loop, C:\*.*  ; Change this folder and wildcard pattern to suit your preferences.
{
	GuiControl,, MyListBox, %A_LoopFileFullPath%
}
Gui, Show
return

MyListBox:
if A_GuiControlEvent <> DoubleClick
	return
; Otherwise, the user double-clicked a list item, so treat that the same as pressing OK.
; So fall through to the next label.
ButtonOK:
GuiControlGet, MyListBox  ; Retrieve the ListBox's current selection.
MsgBox, 4,, Would you you like to launch the file or document below?`n`n%MyListBox%
IfMsgBox, No
	return
; Otherwise, try to launch it:
Run, %MyListBox%,, UseErrorLevel
if ErrorLevel = ERROR
	MsgBox Could not launch the specified file.  Perhaps it is not associated with anything.
return

GuiClose:
GuiEscape:
ExitApp

Example #4: On-screen display (OSD)

CustomColor = EEAA99  ; Can be any RGB color (it will be made transparent below).
Gui, Color, %CustomColor%
Gui, Font, s24
Gui, Add, Text, vMyText cLime, XXXXX YYYYY  ; XX & YY serve to auto-size the window.
Gui, +AlwaysOnTop +LastFound   ; Make it always-on-top and make it the last found window.
; Make all pixels of this color transparent and make the text itself translucent (150):
WinSet, TransColor, %CustomColor% 150
Gui, -Caption  ; Remove the borders. Due to a quirk in Windows, this must be done after transparency.
SetTimer, UpdateOSD, 500
Gosub, UpdateOSD  ; Make the first update immediate rather than waiting for the timer.
Gui, Show, x0 y400
return

UpdateOSD:
MouseGetPos, MouseX, MouseY
GuiControl,, MyText, X%MouseX%, Y%MouseY%
return

Example #5: Simple image viewer.

Gui, +Resize
Gui, Add, Button, default, &Load New Image
Gui, Add, Radio, ym+5 x+10 vRadio checked, Load &actual size
Gui, Add, Radio, ym+5 x+10, Load to &fit screen
Gui, Add, Pic, xm vPic
Gui, Show
return

ButtonLoadNewImage:
FileSelectFile, file,,, Select an image:, Images (*.gif; *.jpg; *.bmp; *.png; *.tif; *.ico; *.cur; *.ani; *.exe; *.dll)
if file =
	return
Gui, Submit, NoHide ; Save the values of the radio buttons.
if Radio = 1  ; Display image at its actual size.
{
	width = 0
	height = 0
}
else ; Second radio is selected: Resize the image to fit the screen.
{
	width = %A_ScreenWidth%
	Width -= 28  ; Allow room for borders and margins inside.
	Height = -1 ; Keep aspect ratio seems best.
}
GuiControl,, Pic, *w%width% *h%height% %file%
Gui, Show, xCenter y0 AutoSize, %file%  ; Resize the window to match the picture size.
return

GuiClose:
ExitApp

Example #6: Simple text editor with menu bar.

; Create the sub-menus for the menu bar:
Menu, FileMenu, Add, &New, FileNew
Menu, FileMenu, Add, &Open, FileOpen
Menu, FileMenu, Add, &Save, FileSave
Menu, FileMenu, Add, Save &As, FileSaveAs
Menu, FileMenu, Add  ; Separator line.
Menu, FileMenu, Add, E&xit, FileExit
Menu, HelpMenu, Add, &About, HelpAbout

; Create the menu bar by attaching the sub-menus to it:
Menu, MyMenuBar, Add, &File, :FileMenu
Menu, MyMenuBar, Add, &Help, :HelpMenu

; Attach the menu bar to the window:
Gui, Menu, MyMenuBar

; Create the main Edit control and display the window:
Gui, +Resize  ; Make the window resizable.
Gui, Add, Edit, vMainEdit W600 R20
Gui, Show,, Untitled
CurrentFileName =  ; Indicate that there is no current file.
return

FileNew:
GuiControl,, MainEdit   ; Clear the Edit control.
return

FileOpen:
FileSelectFile, SelectedFileName, 3,, Open File, Text Documents (*.txt)
if SelectedFileName =  ; No file selected.
	return
Gosub FileRead
return

FileRead:  ; Caller has set the variable SelectedFileName for us.
FileRead, MainEdit, %SelectedFileName%  ; Read the file's contents into the variable.
if ErrorLevel <> 0
{
	MsgBox Could not open "%SelectedFileName%".
	return
}
GuiControl,, MainEdit, %MainEdit%  ; Put the text into the control.
CurrentFileName = %SelectedFileName%
Gui, Show,, %CurrentFileName%   ; Show file name in title bar.
return

FileSave:
if CurrentFileName =   ; No filename selected yet, so do Save-As instead.
	Goto FileSaveAs
Gosub SaveCurrentFile
return

FileSaveAs:
FileSelectFile, SelectedFileName, S16,, Save File, Text Documents (*.txt)
if SelectedFileName =  ; No file selected.
	return
CurrentFileName = %SelectedFileName%
Gosub SaveCurrentFile
return

SaveCurrentFile:  ; Caller has ensured that CurrentFileName is not blank.
IfExist %CurrentFileName%
{
	FileDelete %CurrentFileName%
	if ErrorLevel <> 0
	{	
		MsgBox The attempt to overwrite "%CurrentFileName%" failed.
		return
	}
}
GuiControlGet, MainEdit  ; Retrieve the contents of the Edit control.
FileAppend, %MainEdit%, %CurrentFileName%  ; Save the contents to the file.
; Upon success, Show file name in title bar (in case we were called by FileSaveAs):
Gui, Show,, %CurrentFileName%
return

HelpAbout:
MsgBox A very simple text editor.
return

GuiDropFiles:  ; Support drag & drop.
Loop, parse, A_GuiControlEvent, `n
{
	SelectedFileName = %A_LoopField%  ; Get the first file only (in case there's more than one).
	break
}
Gosub FileRead
return

GuiSize:
if ErrorLevel = 1  ; The window has been minimized.  No action needed.
	return
; Otherwise, the window has been resized or maximized. Resize the Edit control to match.
NewWidth := A_GuiWidth - 20
NewHeight := A_GuiHeight - 20
GuiControl, Move, MainEdit, W%NewWidth% H%NewHeight%
return

FileExit:     ; User chose "Exit" from the File menu.
GuiClose:  ; User closed the window.
ExitApp

Example: Achieve an effect similar to SplashTextOn.

Gui, +AlwaysOnTop +Disabled -SysMenu
Gui, Add, Text,, Some text to display.
Gui, Show, NoActivate, My Window  ; NoActivate avoids deactivating the currently active window.


AutoHotKey(오토핫키) 설명서 GroupDeactivate

Posted by 발전소장
2014. 8. 14. 00:47 AutoHotKey/Commands

GroupDeactivate

GroupAdd그리고 정의한 윈도우 그룹에 속하지 않는 윈도우를 순서에 액티브화한다

GroupDeactivate, GroupName [, R] 

Parameters

인수명설명
GroupName GroupAdd그리고 정의한 그룹명
R 그룹에 속하는 윈도우가 액티브한 상태로에 이 커멘드를 실행했을 때, 통상은 제일 옛날에 액티브했던 윈도우가 액티브하게 되지만, 제2당겨 수에 「R」(을)를 지정했을 경우, 제일 최근 액티브했던 윈도우가 액티브하게 된다.
그룹에 속하지 않는 윈도우가 액티브한 경우, 다음에 액티브하게 되는 것은 항상 제일 옛날에 액티브했던 윈도우.

Remarks

액티브 윈도우가 바뀐 직후에 다른 윈도우가 액티브하게 되면,OS(이)나 설정에 따라서는 태스크바 버튼이 점멸하는 것만으로 액티브 윈도우가 변하지 않다.
이것을 막으려면 ,#WinActivateForce지령을 사용한다.

Related

GroupAdd, GroupActivate, GroupClose

Example(s)

GroupDeactivate, MyFavoriteWindows ; Visit non-favorite windows to clean up desktop.


AutoHotKey(오토핫키) 설명서 GroupClose

Posted by 발전소장
2014. 8. 14. 00:47 AutoHotKey/Commands

GroupClose

액티브 윈도우가GroupActivate(이)나GroupDeactivate그리고 액티브화 된 것이면, 그것을 닫아 그룹의 다음의 윈도우를 액티브화한다.그룹에 속하는 모든 윈도우를 닫을 수도 있다.

GroupClose, GroupName [, A|R] 

Parameters

인수명설명
GroupName GroupAdd그리고 정의한 그룹명
A|R 「A」의 경우, 그룹에 속하는 모든 윈도우를 닫는다.
「R」(을)를 지정하면, 다음에 액티브하게 되는 윈도우가 제일 최근 액티브했던 윈도우가 된다.
아무것도 지정하지 않으면 다음에 액티브하게 되는 윈도우는, 제일 옛날에 액티브했던 윈도우가 된다.

Remarks

제2인수가 생략인가 「R」의 경우, 그룹에 대한 직전의 조작이GroupActivate인가GroupDeactivate인가로 동작이 바뀐다.
직전의 조작이GroupActivate(이었)였던 경우, 액티브 윈도우가 그룹에 속하는 윈도우라면 윈도우를 닫아 그 이외의 윈도우라면 그룹에 속하는 윈도우를을 액티브화한다.
직전의 조작이GroupDeactivate(이었)였던 경우, 그룹에 속하는 윈도우와 속하지 않는 윈도우가 역전한다.

Related

GroupAdd, GroupActivate, GroupDeactivate

Example(s)

GroupClose, MyGroup, R


AutoHotKey(오토핫키) 설명서 GroupAdd

Posted by 발전소장
2014. 8. 14. 00:46 AutoHotKey/Commands

GroupAdd

윈도우의 조건을 윈도우 그룹에 추가한다(그룹이 없으면 만들어진다)

GroupAdd, GroupName, WinTitle [, WinText, Label, ExcludeTitle, ExcludeText]

Parameters

인수명설명
GroupName 그룹명
WinTitle 윈도우 타이틀 등.
윈도우 지정의 방법참조.
WinText 윈도우에 포함되는 텍스트
Label GroupActivate실행시에 조건에 일치하는 윈도우가 없었을 때에 실행하는 써브루틴 라벨.
ExcludeTitle 제외 타이틀
ExcludeText 제외 텍스트

Remarks

윈도우 그룹을 사용하면, 조건에 일치하는 윈도우를 그룹화 해,GroupActivate그리고 그것들을 순서에 액티브화할 수 있다.

또,WinMinimize, WinMaximize, WinRestore, WinHide, WinShow, WinClose, and WinKill의 커멘드에서는,WinTitle에 「ahk_group GroupName」라고 지정하는 것으로, 그룹에 속하는 모든 윈도우를 정리해 조작할 수 있다.
다른 커멘드에서도 「ahk_group」(은)는 사용할 수 있지만, 조건에 일치하는 최선면의 윈도우만이 대상이 된다.

Related

GroupActivate, GroupDeactivate, GroupClose

Example(s)

; In the autoexecute section at the top of the script: 
SetTitleMatchMode, 2
GroupAdd, MSIE, - Microsoft Internet Explorer ; Add only a single window to this group. 
return ; End of autoexecute section.
; Assign a hotkey to activate this group, which traverses
;through all open MSIE windows, one at a time (i.e. each
;press of the hotkey).
Numpad1::
GroupActivate, MSIE, r
; Here's a more complex group for MS Outlook 2002.
; In the autoexecute section at the top of the script: 
SetTitleMatchMode, 2 
GroupAdd, mail, Message - Microsoft Word ; This is for mails currently being composed 
GroupAdd, mail, - Message ( ; This is for already opened items 
; Need extra text to avoid activation of a phantom window:
GroupAdd, mail, Advanced Find, Sear&ch for the word(s)
GroupAdd, mail, , Recurrence: 
GroupAdd, mail, Reminder 
GroupAdd, mail, - Microsoft Outlook 
return ; End of autoexecute section.
Numpad5::GroupActivate, mail ; Assign a hotkey to traverse through the group.


AutoHotKey(오토핫키) 설명서 GroupActivate

Posted by 발전소장
2014. 8. 14. 00:46 AutoHotKey/Commands

GroupActivate

GroupAdd그리고 정의한 윈도우 그룹에 속하는 윈도우를 순서에 액티브화한다

GroupActivate, GroupName [, R]

Parameters

인수명설명
GroupName GroupAdd그리고 정의한 그룹명
R 그룹 이외의 윈도우가 액티브한 상태로에 이 커멘드를 실행했을 때, 통상은 제일 옛날에 액티브했던 윈도우가 액티브하게 되지만, 제2당겨 수에 「R」(을)를 지정했을 경우, 제일 최근 액티브했던 윈도우가 액티브하게 된다.
그룹에 속하는 윈도우가 액티브한 경우, 다음에 액티브하게 되는 것은 항상 제일 옛날에 액티브했던 윈도우.

Remarks

액티브 윈도우가 바뀐 직후에 다른 윈도우가 액티브하게 되면,OS(이)나 설정에 따라서는 태스크바 버튼이 점멸하는 것만으로 액티브 윈도우가 변하지 않다.
이것을 막으려면 ,#WinActivateForce지령을 사용한다.

Related

GroupAdd, GroupDeactivate, GroupClose, #WinActivateForce

Example(s)

GroupActivate, MyGroup, R


AutoHotKey(오토핫키) 설명서 Goto

Posted by 발전소장
2014. 8. 14. 00:45 AutoHotKey/Commands

Goto

지정한 라벨의 위치에 처리를 점프 한다

Goto, Label

Parameters

인수명설명
Label 라벨명.hot key 라벨이나 핫 스트링 라벨로도 가능.

Remarks

Goto(은)는 스크립트가 까다로워지는 원인이 되기 십상인 것으로, 별로 추천 되지 않는다.

Related

Gosub, Return, Else, Blocks, Break, Continue

Example(s)

Goto, MyLabel
...
MyLabel:
Sleep, 100 
...


AutoHotKey(오토핫키) 설명서 Gosub

Posted by 발전소장
2014. 8. 14. 00:45 AutoHotKey/Commands

Gosub

지정 라벨에 점프 해,Return하지만 실행되면 돌아온다

Gosub, Label

Parameters

인수명설명
Label 라벨명.hot key 라벨이나 핫 스트링 라벨도 가능.
「%LabelName%」(와)과 같은 변수 참조여도 괜찮다.
다만, 실행시에 라벨명을 해결하기 위해(때문에), 퍼포먼스는 약간 내린다.

Remarks

Gosub(을)를 실행하면, 지정 라벨의 다음의 행에 처리가 이동해, 이하의 처리를 실행한다.
Return커멘드가 실행되면, 호출 원래의Gosub의 다음의 행에 처리가 돌아온다.

Label에 존재하지 않는 라벨을 지정하면, 실행시에 에러 다이얼로그가 표시된다.
라벨명을 설정 파일로부터 읽어들이는 등, 존재하지 않는 라벨이 지정될 우려가 있는 경우는, 아래와 같은 예의 같게 「IsLabel()」함수로 라벨이 존재할까를 조사하고 나서 실행하면 좋다.

IniRead,label,%ini%,%sec%,%key%
If(IsLabel(label))
{
	GoSub,%label%
}

Related

Return, Blocks, Loop, Goto

Example(s)

Gosub, Label1 
MsgBox, The Label1 subroutine has returned (it is finished).
return

Label1:
MsgBox, The Label1 subroutine is now running.
return


AutoHotKey(오토핫키) 설명서 GetKeyState()

Posted by 발전소장
2014. 8. 14. 00:44 AutoHotKey/Commands

GetKeyState()

키가 눌러 내려지고 있는지 어떤지를 취득하는 함수

GetKeyState(KeyName [, "P|T"])

Parameters

인수명설명
KeyName눌러 내려지고 있는지 어떤지를 취득하고 싶은 키명
"P|T"「"P"」(을)를 지정했을 경우, 프로그램이 생성하는 가상적인 눌러 인하 상태를 무시해, 물리적인 눌러 인하 상태를 판정한다.
「"T"」(을)를 지정했을 경우,Capslock, Numlock, Scrolllock, Insert키의 타글 상태를 취득할 수 있다.

Remarks

지정한 키가 눌러 인하(타글의 경우는ON)상태의 경우 「1」, 밀리지 않은 경우는 「0」(이)가 돌아간다.
JoyX등을 지정했을 경우는, 스틱이 쓰러지는 상태가 돌아간다.
그 외의 상세한 것에 대하여는,GetKeyState의 설명도 참조.

Related

GetKeyState


AutoHotKey(오토핫키) 설명서 GetKeyState

Posted by 발전소장
2014. 8. 14. 00:44 AutoHotKey/Commands

GetKeyState

키보드나 mouse button의 눌러 인하 상태, 죠이스틱 상태를 취득

GetKeyState, OutputVar, KeyName [, Mode] 

Parameters

인수명설명
OutputVar 결과를 격납하는 변수명.
취득에 실패하면, 내용은 비운다.
KeyName 상태를 취득하고 싶은 키의 명칭.
특수 키의 일람은Key List참조.
Mode 「P」(을)를 지정하면, 소프트웨어적인 키보드 이벤트 생성을 무시해, 실제로 유저가 키를 누르고 있는지를 취득할 수 있다.(NT계 전용)(#InstallKeybdHook,#InstallMouseHook(을)를 기술하는 등,Hook(을)를 유효하게 하고 있을 필요 있어)
「T」(을)를 지정하면,CapsLock,NumLock,ScrollLock의ON/OFF상태를 취득할 수 있다.
이 경우,ON(이)라면 「D」,OFF(이)라면 「U」(이)가 된다.
이 인수는 생략 가능하고, 죠이스틱에서는 무효.

Remarks

버튼의 경우, 눌러 인하 상태라면 「D」, 밀리지 않으면 「U」(이)가OutputVar의 변수에 격납된다.
죠이스틱의 축(JoyX등)의 경우,0...100의 사이의 소수로 쓰러지는 상태가 나타내진다.(50(이)라면 쓰러지지 않았다)(수치의 서식은SetFormat그리고 지정 가능)
JoyPOV의 경우,0...35900의 값이 된다.정면을0(으)로 한 각도를100배가 된 것이 되는 모양.

Related

Key List, KeyHistory, #InstallKeybdHook, #InstallMouseHook, GetKeyState()

Example(s)

; Basic Examples:
GetKeyState, state, Shift
GetKeyState, state, CapsLock, T ; D if CapsLock is ON or U otherwise.
GetKeyState, state, RButton ; Right mouse button.
GetKeyState, state, Joy2 ; The second button of the first joystick.

; Advanced Example:
; In this case, the mouse button is kept held down while NumpadAdd
; is down, which effectively transforms NumpadAdd into a mouse button.
; This method can also be used to repeat an action while the user is
; holding down a key or button:
NumpadAdd::
MouseClick, left, , , 1, 0, D  ; Hold down the left mouse button.
Loop
{
	Sleep, 10
	GetKeyState, state, NumpadAdd, P
	if state = U  ; The key has been released, so break out of the loop.
		break
	; ... insert here any other actions you want repeated.
}
MouseClick, left, , , 1, 0, U  ; Release the mouse button.
return

; Example: Make joystick button behavior depend on joystick axis position.
joy2:: 
GetKeyState, joyx, JoyX 
if joyx > 75 
	MsgBox Action #1 (button pressed while joystick was pushed to the right)
else if joyx < 25 
	MsgBox Action #2 (button pressed while joystick was pushed to the left)
else
	MsgBox Action #3 (button pressed while joystick was centered horizontally)
return