AutoHotKey(오토핫키) 설명서 Menu

Posted by 발전소장
2014. 8. 14. 13:41 AutoHotKey/Commands

Menu

pop-up menu를 작성하거나 표시하거나 한다.task tray 아이콘이나 툴 팁의 설정도 실시할 수 있다.

Menu, MenuName, Cmd [, P3, P4, FutureUse]

Parameters

인수명설명
MenuName 「TRAY」라고 하면, task tray의 오른쪽 클릭 메뉴를 설정할 수 있다.
그 이외는, 커스텀 메뉴명이 된다.
커스텀 메뉴는,Add커멘드로 항목을 등록했을 때에 신규 작성된다.
Cmd, P3, P4 아래와 같이 참조
FutureUse 장래의 확장을 위해서 확보되고 있다.현재 이 인수는 무시된다.

메뉴 항목 조작

Add , MenuItemName
「MenuItemName」(으)로 지정한 표시명으로 메뉴 항목을 추가해, 「MenuItemName」(으)로 지정한 이름의 라벨을 할당한다.
Add , MenuItemName, Label
「MenuItemName」(으)로 지정한 표시명으로 메뉴 항목을 추가해, 「Label」(으)로 지정한 이름의 라벨을 할당한다.
Add , MenuItemName, :Submenu
「MenuItemName」(으)로 지정한 표시명으로 메뉴 항목이 추가되어 선택하면 「Submenu」(으)로 지정한 이름의 메뉴가 전개되게 된다.
「Submenu」의 메뉴는 미리 작성해 둔다.
부메뉴명의 전에 「:」(을)를 붙일 필요가 있다.
Add , MenuItemName,[ Label],Pn
Pn의n그리고 메뉴를 선택했을 때에 실행되는 스렛드의세치기 우선도(을)를 설정할 수 있다.(례:「P10」)
Add
메뉴에 단락지어 선을 추가한다. 현재로서는, 단락선단체를 삭제하는 것은 할 수 없기 때문에,DeleteAll그리고 전삭제하고 나서 추가 다시 할 수 밖에 없다.
Delete [, MenuItemName]
MenuItemName그리고 지정한 항목을 삭제한다.
MenuItemName하지만 생략 되었을 경우,MenuName의 메뉴 자체가 삭제된다.다른 메뉴에 부메뉴 항목으로서 등록되어 있었을 경우, 그 항목도 삭제된다.
DeleteAll
메뉴내의 항목을 모두 삭제한다.
메뉴 자체는 삭제되지 않는다.
Rename, MenuItemName [, NewName]
MenuItemName의 항목명을NewName(으)로 변경한다.
NewName하지만 생략 되었을 경우, 항목은 단락지어 선으로 바뀐다.
다른 항목명과 같은 이름으로 하는 것은 할 수 없다.
Check, MenuItemName
MenuItemName의 항목을 체크가 붙은 상태로 한다.
Uncheck, MenuItemName
MenuItemName의 항목을 체크가 붙지 않은 상태로 한다.
ToggleCheck, MenuItemName
MenuItemName의 항목의 체크의 유무를 바꾼다.
Enable, MenuItemName
MenuItemName의 항목을 유효화한다.
Disable, MenuItemName
MenuItemName의 항목을 무효화(선택 불능 상태)한다.
ToggleEnable, MenuItemName
MenuItemName의 항목의 유효·무효를 바꾼다.
Default [, MenuItemName]
메뉴의 디폴트 항목을MenuItemName의 항목으로 설정한다.
디폴트 항목은 굵은 글씨로 표시된다.
task tray 메뉴의 경우, task tray 아이콘을 더블 클릭 했을 때에 디폴트 항목이 실행된다.
MenuItemName하지만 생략 되었을 때는,NoDefault(와)과 같게 된다.
NoDefault
디폴트 항목의 설정을 해제해, 디폴트 항목이 없는 상태로 한다.
Standard
task tray 메뉴에 있는 표준 메뉴 항목을 추가한다
NoStandard
표준 메뉴 항목을 삭제한다

task tray 관계

MenuName(은)는 「TRAY」라고 하는 것

Icon, FileName [, IconNumber, Freeze]
task tray 아이콘을 변경한다.
FileName에는 아이콘을 포함한 파일(.ico,.dll,.exe등)(을)를 지정한다.
IconNumber에는 아이콘 번호를 지정.생략시는 「1」(이)가 된다.
FileName(을)를 「*」(으)로 하면, 스크립트의 디폴트 아이콘이 된다.
여기서의 설정은,InputBox(이)나Progress(으)로의 아이콘에도 반영된다.
A_IconNumber(이)나A_IconFile(으)로서 현재의 설정을 취득할 수 있다.(디폴트 때는 비운다)
Freeze에1(을)를 지정하면, 트레이 아이콘을 고정해,Pause커멘드나Suspend커멘드로 아이콘이 변화하지 않게 할 수 있다.Freeze(을)를0(으)로 하면 트레이 아이콘의 고정을 해제할 수 있다.
Icon,,,1
Pause(이)나Suspend커멘드를 실행했을 때에 트레이 아이콘이 변하지 않게 한다
Icon,,0
Icon,,1의 설정을 해제
Icon
#NoTrayIcon지령으로 아이콘이 비표시가 되어 있을 때, 디폴트의 아이콘을 표시한다.
NoIcon
트레이 아이콘을 비표시로 한다.
스크립트 기동시에 아이콘을 비표시로 하고 싶은 경우,#NoTrayIcon지령을 사용하는 편이 좋다.
아이콘이 비표시인지 어떤지는A_IconHidden변수로 참조할 수 있다.(0(이)라면 표시,1(이)라면 비표시)
Tip [, Text]
트레이 아이콘에 마우스를 실었을 때에 표시되는 툴 팁을 변경한다. Text하지만 생략 되었을 경우, 스크립트의 디폴트 텍스트가 된다.
A_IconTip변수로 설정한 내용을 참조할 수 있다.(디폴트 때는 하늘)

Show [,X ,Y]
MenuName의 메뉴를 표시한다.
GUI윈도우의 도구모음에 관련지을 수 있고 있는 메뉴는 표시할 수 없다.
X,Y에 표시하는 좌표를 지정한다.생략시는 마우스 커서 위치.
좌표의 지정 방법은, 「CoordMode, Menu」(으)로 액티브 윈도우로부터의 상대 좌표인가, 스크린 전체로의 절대 좌표인지를 설정할 수 있다.
Color, ColorValue[, Single]
메뉴의 배경색을 변경한다.
ColorValue에는RRGGBB형식의 칼라 코드(례:FF9900)(이)나색의 이름(례:Red)(을)를 지정할 수 있다.
ColorValue(을)를 생략 할까 「Default」(을)를 지정하면, 시스템으로 설정된 메뉴 배경색으로 돌아온다.
통상은, 부메뉴의 배경색도 변경되지만, 제3인수에 「Single」(을)를 지정하면 부메뉴는 변경되지 않는다.
이 서브 커멘드는Windows95/NT그럼 효과가 없다.
Click, ClickCount
트레이 아이콘으로부터 메인 윈도우를 표시하기 위한 조작을 설정한다.
ClickCount에 「1」(을)를 지정하면, 싱글 클릭으로 표시된다.
「2」(을)를 지정하면, 더블 클릭으로 표시된다.
디폴트는 「2」.
MainWindow
메뉴로부터 스크립트의 메인 윈도우를 표시하는 것을 허락한다.
MenuName하TRAY(으)로 한다.
EXE화된 스크립트에서만 유효.
NoMainWindow
메뉴로부터 스크립트의 메인 윈도우를 표시하는 것을 금지한다.
ListLines,ListVars,ListHotkeys,KeyHistory커멘드가 실행되었을 경우는, 여기서의 설정에 관계없이 표시된다.
UseErrorLevel [, off]
통상,Menu커멘드 실행시에 어떠한 에러가 있으면, 에러 다이얼로그가 표시되어 현재의 스렛드는 종료한다.
UseErrorLevel(을)를 실시하면, 에러 다이얼로그를 표시하지 않고,ErrorLevel변수를 「1」(으)로 한다.
인수에OFF(을)를 붙이면, 이 설정을OFF(으)로 할 수 있다.
이 설정은, 모든 메뉴에 영향을 준다.

Remarks

메뉴 아이템명에 「&a」(와)과 같이 「&」에 이어 영숫자를 붙인 것이 있으면, 그 부분이 밑줄 첨부의 영숫자로서 표시되어 대응하는 키를 누르는 것으로 그 메뉴 아이템을 선택할 수 있게 된다.

메뉴나 메뉴 항목명은 최대260문자까지.
메뉴 항목명은 대문자 소문자를 무시해 매치한다.

메뉴 아이템은 항상 맨 밑에 추가된다.
트레이 메뉴 위에 항목을 추가하고 싶은 경우,NoStandard그리고 일단 표준 항목을 삭제하고,Standard그리고 추가 다시 한다.

하늘의 메뉴는 표시할 수 없다.

메뉴 아이템은스렛드(으)로서 실행된다.
메뉴 아이템의 스렛드 실행중에 다른 스렛드가 끼어들기도 한다.
우선도를 설정해, 낮은 우선도의 스렛드의 세치기를 금지할 수도 있다.

A_ThisMenuItem」변수로 제일 최근 실행된 실행된 메뉴 항목명을, 「A_ThisMenu」(으)로 메뉴명을 참조할 수 있다.

hot key를 사용하지 않고, 메뉴 아이템등에서의 봐 액션을 실행하는 스크립트의 경우,#Persistent지령을 기술해 명시적으로 상주 상태로 하지 않으면 안 된다.

Related

Threads, Gosub, Return, SetTimer, #Persistent

Example(s)

Menu, tray, add, Item1, MenuHandler
return
MenuHandler:
MsgBox You selected %A_ThisMenuItem% from menu %A_ThisMenu%
return

; This test script demonstrates some of the various menu commands.
#Persistent
#SingleInstance
menu, tray, add ; separator
menu, tray, add, TestToggle&Check
menu, tray, add, TestToggleEnable
menu, tray, add, TestDefault
menu, tray, add, TestStandard
menu, tray, add, TestDelete
menu, tray, add, TestDeleteAll
menu, tray, add, TestRename
menu, tray, add, Test
return

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

TestToggle&Check:
menu, tray, ToggleCheck, TestToggle&Check
menu, tray, Enable, TestToggleEnable ; Also enables the next test since it can't undo the disabling of itself.
menu, tray, add, TestDelete ; Similar to above.
return

TestToggleEnable:
menu, tray, ToggleEnable, TestToggleEnable
return

TestDefault:
if default = TestDefault
{
	menu, tray, NoDefault
	default =
}
else
{
	menu, tray, Default, TestDefault
	default = TestDefault
}
return

TestStandard:
if standard <> n
{
	menu, tray, NoStandard
	standard = n
}
else
{
	menu, tray, Standard
	standard = y
}
return

TestDelete:
menu, tray, delete, TestDelete
return

TestDeleteAll:
menu, tray, DeleteAll
return

TestRename:
if NewName <> renamed
{
	OldName = TestRename
	NewName = renamed
}
else
{
	OldName = renamed
	NewName = TestRename
}
menu, tray, rename, %OldName%, %NewName%
return

Test:
MsgBox, You selected "%A_ThisMenuItem%" in menu "%A_ThisMenu%".
return