# WinMenuSelectItem

调用匹配指定条件的窗口的菜单项。

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

#### 参数

WinTitle | 目标窗口的标题或标题中的部分文字（匹配模式由 SetTitleMatchMode 决定）。如果省略其它 3 个窗口参数，默认目标是 上一次匹配窗口 。如果这个参数使用字母 A ，同时省略其它 3 个窗口参数，则以当前激活的窗口作为目标。要用窗口的 class 名进行匹配，使用 ahk_class 精确 class 名（Window Spy 中可以显示 class 名）。要用窗口的 进程标识符（PID）进行匹配，使用 ahk_pid %PID变量% 。要用 窗口组 ，使用 ahk_group 组名 。要用窗口的 唯一 ID 进行匹配，使用 ahk_id %ID变量% 。要减小检测范围，使用 多重条件 ，例如：My File.txt ahk_class Notepad
WinText | 如果使用这个参数，则它应该是目标窗口中某个文本元素的子字符串（在 Window Spy 中会显示出窗口中的文本元素）。隐藏文本只有在 DetectHiddenText 设置为 ON 的时候才能检测到。
Menu | 顶级菜单的名称，例如 File ，Edit ，View 。也可以使用 1& 表示第一个菜单项，2& 表示第二个菜单项，等等。
SubMenu1 | 需要选择的菜单的名称或位置（参见 Menu）。
SubMenu2 | 如果 SubMenu1 本身还有子菜单，那么这个参数就是子菜单项的名称或位置。
SubMenu3 | 同上。
SubMenu4 | 同上。
SubMenu5 | 同上。
SubMenu6 | 同上。
ExcludeTitle | 标题中包含该参数指定的文字的窗口将被除外。
ExcludeText | 文本元素中包含该参数指定的文字的窗口将被除外。

#### ErrorLevel

如果出现错误，ErrorLevel/错误等级 设置为 1 ，否则为 0 。

#### 注意

使用这个命令的时候，目标窗口不需要处于激活状态。但是，某些窗口也许要求处于 非最小化 状态。

这个命令对于使用非标准菜单栏的程序 无效 。例如 Microsoft Outlook 和 Outlook Express ，它们使用工具栏来伪装成菜单栏。在这种情况下，推荐使用 ControlSend 或 PostMessage 命令。

菜单的名称是不区分大小写的（例如，File->Save 等同于 file->save ），同时也不需要使用“&”来表示菜单名称中的下划线字母（例如，&File 等同于 File ）。

在菜单名称参数中同样可以指定菜单位置，这样做是为了支持那些没有文本的菜单（例如仅包含图片而没有文字的菜单项）。1& 表示第一个菜单（例如 File），2& 表示第二个菜单（例如 Edit），以此类推。菜单中的分割线也算一个菜单项，在参数中使用菜单位置的时候要注意。

窗口的标题和窗口中的文字是大小写敏感的。要检测隐藏窗口，必须打开 DetectHiddenWindows 。

#### 相关命令

ControlSend, PostMessage

#### 示例

    ; 选择记事本中的 “打开”菜单：
    WinMenuSelectItem, Untitled - Notepad, , File, Open

    ; 和上面例子一样，不过使用的是菜单位置：
    WinMenuSelectItem, Untitled - Notepad, , 1&, 2&