WinMenuSelectItem

지정된 창의 메뉴 바에서 메뉴 항목을 요청합니다.

WinMenuSelectItem, WinTitle, WinText, Menu , SubMenu1, SubMenu2, SubMenu3, SubMenu4, SubMenu5, SubMenu6, ExcludeTitle, ExcludeText

매개변수

WinTitle

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

WinText

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

Menu

The name (or a prefix of the name) of the top-level menu item, e.g. File, Edit, View. 메뉴 항목의 위치로 될 수 있습니다. 1&이면 첫 메뉴를 나타내고 2&이면 두 번째 메뉴를 나타냅니다 등등.

The search is case-insensitive according to the rules of the current user's locale, and stops at the first matching item. The use of ampersand (&) to indicate the underlined letter in a menu item is usually not necessary (i.e. &File is the same as File).

Known limitation: If the parameter contains an ampersand, it must match the item name exactly, including all non-literal ampersands (which are hidden or displayed as an underline). If the parameter does not contain an ampersand, all ampersands are ignored, including literal ones. For example, an item displayed as "a & b" may match a parameter value of a && b or a  b.

[v1.1.28+]: Specify 0& to use the window's system menu.

SubMenu1

선택할 메뉴 항목의 이름 또는 그의 위치 (위 참조).

This can be omitted if the top-level item does not contain a menu (rare).

SubMenu2

SubMenu1 자체에 메뉴가 포함되어 있으면, 이것이 그 메뉴 항목의 이름 또는 그의 위치입니다.

SubMenu3
SubMenu4
SubMenu5
SubMenu6

위와 동일.

ExcludeTitle

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

ExcludeText

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

에러 처리

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

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

논평

이 명령어가 작동하려면, 목표 창이 활성화되어 있지 않아야 합니다. 그렇지만 창은 최소화 상태가 아니어야 합니다.

이 명령어는 비 표준 메뉴 바를 사용하는 어플과 작동하지 않습니다. 예로는 Microsoft Outlook과 Outlook Express가 있는데, 이들은 메뉴바에 위장한 툴바를 사용합니다. 이런 경우, ControlSendPostMessage의 사용을 고려하십시오. 분명히 비-표준 메뉴바를 가진 어플과 상호작용할 수 있을 것입니다.

메뉴 이름 매개변수는 또한 위치를 지정할 수도 있습니다. 이 방법은 (아마도 실제 텍스트보다 그림이 포함되어 있기 때문에) 텍스트가 없는 메뉴를 지원하기 위해 존재합니다. 위치 1&은 첫 메뉴 항목이고 (예, 첫 File 메뉴), 위치 2&는 두 번째 메뉴 항목입니다 (예, Edit 메뉴) 등등. 메뉴 가름 줄은 메뉴 항목으 위치를 결정하기 위한 목적으로 메뉴 항목 개수에 포함됩니다.

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

System Menu [v1.1.28+]

Menu can be 0& to select an item within the window's system menu, which typically appears when the user presses Alt+Space or clicks on the icon in the window's title bar. 예를 들어:

; Paste a command into cmd.exe without activating the window.
Clipboard := "echo Hello, world!`r"
WinMenuSelectItem ahk_exe cmd.exe,, 0&, Edit, Paste

Caution: Use this only on windows which have custom items in their system menu.

If the window does not already have a custom system menu, a copy of the standard system menu will be created and assigned to the target window as a side effect. This copy is destroyed by the system when the script exits, leaving other scripts unable to access it. Therefore, avoid using 0& for the standard items which appear on all windows. Instead, post the WM_SYSCOMMAND message directly. 예를 들어:

; Like "WinMinimize A", but also play the system sound for minimizing.
WM_SYSCOMMAND := 0x0112
SC_MINIMIZE := 0xF020
PostMessage WM_SYSCOMMAND, SC_MINIMIZE, 0,, A

ControlSend, PostMessage

예제

Selects File -> Open in Notepad. This example may fail on Windows 11 or later, as it requires the classic version of Notepad.

WinMenuSelectItem, Untitled - Notepad,, File, Open

Same as above except it is done by position instead of name. On Windows 10, 2& must be replaced with 3& due to the new "New Window" menu item. This example may fail on Windows 11 or later, as it requires the classic version of Notepad.

WinMenuSelectItem, Untitled - Notepad,, 1&, 2&

Selects View -> Lines most recently executed in the main window.

#Persistent
WinShow, ahk_class AutoHotkey
WinMenuSelectItem, ahk_class AutoHotkey,, View, Lines most recently executed