# 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