# pywinauto.controls.menuwrapper
菜单和菜单项周围的包装
这些包装器使您可以轻松使用菜单项。 您可以选择或单击项目并检查它们是否已选中或未选中。
>[success] *class* `pywinauto.controls.menuwrapper.Menu(owner_ctrl, menuhandle, is_main_menu=True, owner_item=None)`
Bases: `object`
围绕菜单句柄的简单包装
菜单支持查询菜单和获取菜单项的方法。
> `get_menu_path`(*path*, *path\_items=None*, *appdata=None*, *exact=False*)
遍历此菜单中的项目以查找路径指定的项目
路径由分隔的项目列表指定 ‘->’. 每个项目可以是一个字符串(可以包括空格),例如 “另存为”或项目的从零开始的索引返回前缀为#例如 #1或由$说明符开头的项目的ID。
这些可以根据需要混合使用。 例如:
* “#0 -> Save As”,
* “$23453 -> Save As”,
* “Tools -> #0 -> Configure”
使用“最佳匹配”模糊算法完成文本匹配,因此您不必添加所有标点符号,省略号等。对于MENUITEMINFO结构的wID字段执行ID匹配([https://msdn.microsoft.com/en-us/library/windows/desktop/ms647578(v=vs.85).aspx](https://msdn.microsoft.com/en-us/library/windows/desktop/ms647578(v=vs.85).aspx))
> `get_properties`()
将菜单的属性作为字典列表返回
这种方法实际上是递归的。 它为每个项调用get_properties()。 如果项目有子菜单,它将调用此get_properties来获取子菜单项。
> `item`(*index*, *exact=False*)
返回特定的菜单项
* **index** 是您想要的菜单项的基于0的索引或文本。
* **exact** 为True表示项目文本的精确匹配,False意味着最佳匹配。
> `item_count`()
返回此菜单中的项目数
> `items`()
返回此菜单中所有项目的列表
>[success] *exception* `pywinauto.controls.menuwrapper.``MenuInaccessible`
Bases: `RuntimeError`
当菜单处理但无法访问时引发。
>[success] *class* `pywinauto.controls.menuwrapper.``MenuInfo`
Bases: `object`
菜单信息的持有者
>[success] *class* `pywinauto.controls.menuwrapper.``MenuItem`(*ctrl*, *menu*, *index*, *on\_main\_menu=False*)
Bases: `object`
菜单项包装
> `click`()
选择菜单项
这将向父窗口发送一条消息,表明该项目已被选中。
> `click_input`()
以更逼真的方式单击菜单项
如果菜单处于打开状态,则会在项目上单击鼠标事件。 如果菜单未打开,则每个菜单的父级都将打开,直到该项目可见。
> `friendly_class_name`()
返回友好的类名
> `get_properties`()
将项目的属性作为dict返回
如果此项打开子菜单,则调用Menu.get_properties()以返回子菜单中的项列表。 这可以在'menu_items'键下找到。
> `index`()
返回此菜单项的索引
> `is_checked`()
如果选中该项,则返回True。
> `is_enabled`()
如果项目已启用,则返回True。
> `item_id`()
返回此菜单项的ID
> `item_type`()
Return the Type of this menu item
Main types are MF\_STRING, MF\_BITMAP, MF\_SEPARATOR.
>[info] See [https://msdn.microsoft.com/en-us/library/windows/desktop/ms647980.aspx](https://msdn.microsoft.com/en-us/library/windows/desktop/ms647980.aspx) for further information.
> `rectangle`()
获取菜单项的矩形
> `select`()
选择菜单项
这将向父窗口发送一条消息,表明该项目已被选中。
> `state`()
Return the state of this menu item
> `sub_menu`()
Return the SubMenu or None if no submenu
> `text`()
Return the text of this menu item
>[success] *class* `pywinauto.controls.menuwrapper.``MenuItemInfo`
Bases: `object`
菜单项信息的持有者
>[success] *exception* `pywinauto.controls.menuwrapper.``MenuItemNotEnabled`
Bases: `RuntimeError`
未启用菜单项时引发
>[success] `pywinauto.controls.menuwrapper.``ensure_accessible`(*method*)
用于Menu实例方法的Decorator
- 什么是Pywinauto
- 入门指南
- 如何
- 等待长时间操作
- 远程执行指南
- 每种不同控制类型可用的方法
- 贡献者
- 开发笔记
- 待办项目
- 更新日志
- 基本用户输入模块
- pywinauto.mouse
- pywinauto.keyboard
- 主要用户模块
- pywinauto.application
- pywinauto.findbestmatch
- pywinauto.findwindows
- pywinauto.timings
- 特定功能
- pywinauto.clipboard
- pywinauto.win32_hooks
- 控件参考
- pywinauto.base_wrapper
- pywinauto.controls.hwndwrapper
- pywinauto.controls.menuwrapper
- pywinauto.controls.common_controls
- pywinauto.controls.win32_controls
- pywinauto.controls.uiawrapper
- pywinauto.controls.uia_controls
- Pre-supplied Tests
- pywinauto.tests.allcontrols
- pywinauto.tests.asianhotkey
- pywinauto.tests.comboboxdroppedheight
- pywinauto.tests.comparetoreffont
- pywinauto.tests.leadtrailspaces
- pywinauto.tests.miscvalues
- pywinauto.tests.missalignment
- pywinauto.tests.missingextrastring
- pywinauto.tests.overlapping
- pywinauto.tests.repeatedhotkey
- pywinauto.tests.translation
- pywinauto.tests.truncation
- 后端内部实施模块
- pywinauto.backend
- pywinauto.element_info
- pywinauto.win32_element_info
- pywinauto.uia_element_info
- pywinauto.uia_defines
- 内部模块
- pywinauto.controlproperties
- pywinauto.handleprops
- pywinauto.xml_helpers
- pywinauto.fuzzydict
- pywinauto.actionlogger
- pywinauto.sysinfo
- pywinauto.remote_memory_block