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 ,它们使用工具栏来伪装成菜单栏。在这种情况下,推荐使用 ControlSendPostMessage 命令。

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

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

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

相关命令

ControlSend, PostMessage

示例

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

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