common_controls 控件模块
- exception hwndwrapper.ControlNotEnabled
- exception hwndwrapper.ControlNotVisible
- hwndwrapper.DialogWrapper
- DialogWrapper.ClientAreaRect
- DialogWrapper.HideFromTaskbar
- DialogWrapper.IsInTaskbar
- DialogWrapper.RunTests
- DialogWrapper.ShowInTaskbar
- DialogWrapper.WriteToXML
- DialogWrapper.client_area_rect
- DialogWrapper.force_close
- DialogWrapper.hide_from_taskbar
- DialogWrapper.is_in_taskbar
- DialogWrapper.run_tests
- DialogWrapper.show_in_taskbar
- DialogWrapper.write_to_xml
- hwndwrapper.HwndMeta
- hwndwrapper.HwndWrapper
- HwndWrapper.automation_id
- HwndWrapper.click
- HwndWrapper.client_rect
- HwndWrapper.client_rects
- HwndWrapper.close
- HwndWrapper.close_alt_f4
- HwndWrapper.close_click
- HwndWrapper.context_help_id
- HwndWrapper.control_type
- HwndWrapper.debug_message
- HwndWrapper.double_click
- HwndWrapper.drag_mouse
- HwndWrapper.exstyle
- HwndWrapper.font
- HwndWrapper.fonts
- HwndWrapper.full_control_type
- HwndWrapper.get_active
- HwndWrapper.get_focus
- HwndWrapper.get_show_state
- HwndWrapper.get_toolbar
- HwndWrapper.has_exstyle
- HwndWrapper.has_focus
- HwndWrapper.has_keyboard_focus
- HwndWrapper.has_style
- HwndWrapper.is_active
- HwndWrapper.is_dialog
- HwndWrapper.is_maximized
- HwndWrapper.is_minimized
- HwndWrapper.is_normal
- HwndWrapper.is_unicode
- HwndWrapper.maximize
- HwndWrapper.menu
- HwndWrapper.menu_item
- HwndWrapper.menu_items
- HwndWrapper.menu_select
- HwndWrapper.minimize
- HwndWrapper.move_mouse
- HwndWrapper.move_window
- HwndWrapper.notify_parent
- HwndWrapper.owner
- HwndWrapper.popup_window
- HwndWrapper.post_message
- HwndWrapper.press_mouse
- HwndWrapper.release_mouse
- HwndWrapper.restore
- HwndWrapper.right_click
- HwndWrapper.scroll
- HwndWrapper.send_chars
- HwndWrapper.send_command
- HwndWrapper.send_keystrokes
- HwndWrapper.send_message
- HwndWrapper.send_message_timeout
- HwndWrapper.set_application_data
- HwndWrapper.set_focus
- HwndWrapper.set_keyboard_focus
- HwndWrapper.set_transparency
- HwndWrapper.set_window_text
- HwndWrapper.style
- HwndWrapper.user_data
- HwndWrapper.wait_for_idle
- exception hwndwrapper.InvalidWindowHandle
- hwndwrapper.get_dialog_props_from_handle
Windows 控件的基本包装
exception hwndwrapper.ControlNotEnabled
pywinauto.controls.hwndwrapper.ControlNotEnabled
Bases: RuntimeError
未启用控件时引发
exception hwndwrapper.ControlNotVisible
pywinauto.controls.hwndwrapper.ControlNotVisible
Bases: `RuntimeError
当控件不可见时引发
hwndwrapper.DialogWrapper
class pywinauto.controls.hwndwrapper.DialogWrapper
dialog 换行对话框
DialogWrapper.ClientAreaRect
pywinauto.controls.hwndwrapper.DialogWrapper.ClientAreaRect(*args, **kwargs)
DialogWrapper.HideFromTaskbar
pywinauto.controls.hwndwrapper.DialogWrapper.HideFromTaskbar(*args, **kwargs)
DialogWrapper.IsInTaskbar
pywinauto.controls.hwndwrapper.DialogWrapper.IsInTaskbar(*args, **kwargs)
DialogWrapper.RunTests
pywinauto.controls.hwndwrapper.DialogWrapper.RunTests(*args, **kwargs)
DialogWrapper.ShowInTaskbar
pywinauto.controls.hwndwrapper.DialogWrapper.ShowInTaskbar(*args, **kwargs)
DialogWrapper.WriteToXML
pywinauto.controls.hwndwrapper.DialogWrapper.WriteToXML(*args, **kwargs)
DialogWrapper.client_area_rect
pywinauto.controls.hwndwrapper.DialogWrapper.client_area_rect()
返回工作区矩形
来自 MSDN:控件的工作区是控件的边界,减去非客户端元素,如滚动条、边框、标题栏和菜单。
DialogWrapper.force_close
pywinauto.controls.hwndwrapper.DialogWrapper.force_close()
使用 WM_QUERYENDSESSION 强制关闭对话框并返回结果
Window 让我们知道它不想被关闭 - 所以中止操作,这意味着应用程序没有挂起 - 但知道它不想被关闭 - 例如,它正在询问用户是否要保存。
DialogWrapper.hide_from_taskbar
pywinauto.controls.hwndwrapper.DialogWrapper.hide_from_taskbar()
从 Windows 任务栏中隐藏对话框
DialogWrapper.is_in_taskbar
pywinauto.controls.hwndwrapper.DialogWrapper.is_in_taskbar()
检查对话框是否显示在 Windows 任务栏中
感谢 David Heffernan 的想法: http://stackoverflow.com/questions/30933219/hide-window-from-taskbar-without-using-ws-ex-toolwindow 如果出现以下情况,则在任务栏中表示窗口: 它没有所有者,它没有 WS_EX_TOOLWINDOW 扩展样式,或者它有 WS_EX_APPWINDOW 扩展样式。
DialogWrapper.run_tests
pywinauto.controls.hwndwrapper.DialogWrapper.run_tests(tests_to_run=None, ref_controls=None)
在对话框上运行测试
DialogWrapper.show_in_taskbar
pywinauto.controls.hwndwrapper.DialogWrapper.show_in_taskbar()
在 Windows 任务栏中显示对话框
DialogWrapper.write_to_xml
pywinauto.controls.hwndwrapper.DialogWrapper.write_to_xml(filename)
将对话框写入 XML 文件(需要 elementtree)
hwndwrapper.HwndMeta
class pywinauto.controls.hwndwrapper.HwndMeta(name, bases, attrs)
HwndWrapper 对象的元类
HwndMeta.find_wrapper
@staticmethod
pywinauto.controls.hwndwrapper.HwndMeta.find_wrapper(element)
为此本机元素找到正确的包装器
hwndwrapper.HwndWrapper
class pywinauto.controls.hwndwrapper.HwndWrapper(element_info)
控件的默认包装器。
所有其他包装器都派生自此。
此类包含用于处理 Windows 的基础 Windows API 功能的许多功能。
大多数方法适用于每个窗口类型。例如,您可以在任何窗口上单击()。
此类的大多数方法都是围绕 API 调用的简单包装器,因此它们尝试执行最简单的事情。
HwndWrapper 对象可以直接传递给 ctypes 包装的 C 函数 - 它将被转换为具有其句柄值的 Long(参见 ctypes、as_parameter)。
HwndWrapper.automation_id
pywinauto.controls.hwndwrapper.HwndWrapper.automation_id()
返回控件的 .NET 名称
HwndWrapper.click
pywinauto.controls.hwndwrapper.HwndWrapper.click(button='left', pressed='', coords=(0, 0), double=False, absolute=False)
模拟鼠标单击控件
此方法向控件发送 WM_*
消息,以执行更“真实”的鼠标单击,使用 click_input()
执行单击,它使用 mouse_event()
API 执行单击。
此方法不要求控件在屏幕上可见(即,它可以隐藏在另一个窗口下方,并且仍然有效)。
HwndWrapper.client_rect
pywinauto.controls.hwndwrapper.HwndWrapper.client_rect()
返回窗口的客户端矩形
客户端矩形是窗口矩形减去控件不可用于绘图的任何边框。
对于此方法,top 和 left 始终为 0。
此方法返回一个 RECT 结构,该结构具有 - top、left、right、bottom 属性。并具有 width()
和 height()
方法。请参阅 win32structures。RECT 了解更多信息。
HwndWrapper.client_rects
pywinauto.controls.hwndwrapper.HwndWrapper.client_rects()
返回此控件中每个项的客户端直列
它是控件的矩形列表。从具有多个项的控件中提取所有矩形时,通常会被重写。
它始终是包含一个或多个矩形的列表:
- 第一个 elemtent 是控件的客户端矩形
- 后续元素包含控件的任何项的客户端矩形(例如,列表框/组合框中的项、tabcontrol 中的选项卡)
HwndWrapper.close
pywinauto.controls.hwndwrapper.HwndWrapper.close(wait_time=0)
关闭窗口
代码修改自 http://msdn.microsoft.com/msdnmag/issues/02/08/CQA/
HwndWrapper.close_alt_f4
pywinauto.controls.hwndwrapper.HwndWrapper.close_alt_f4()
按 Alt+F4 键关闭窗口。
HwndWrapper.close_click
pywinauto.controls.hwndwrapper.HwndWrapper.close_click(button='left', pressed='', coords=(0, 0), double=False)
执行应使窗口消失的单击操作
与单击的唯一区别是,在单击操作之前和之后都有额外的延迟。
HwndWrapper.context_help_id
pywinauto.controls.hwndwrapper.HwndWrapper.context_help_id()
返回窗口的上下文帮助 ID
HwndWrapper.control_type
pywinauto.controls.hwndwrapper.HwndWrapper.control_type()
返回控件的 .NET 类型
HwndWrapper.debug_message
pywinauto.controls.hwndwrapper.HwndWrapper.debug_message(text)
在窗口上编写一些调试文本
HwndWrapper.double_click
pywinauto.controls.hwndwrapper.HwndWrapper.double_click(button='left', pressed='', coords=(0, 0))
执行双击操作
HwndWrapper.drag_mouse
pywinauto.controls.hwndwrapper.HwndWrapper.drag_mouse(button='left', presscoords=(0, 0), releasecoords=(0, 0), pressed='')
拖动鼠标
HwndWrapper.exstyle
pywinauto.controls.hwndwrapper.HwndWrapper.exstyle()
- 返回窗口的扩展样式
- 返回值为长
WS_*
和特定控件特定样式的组合。请参阅 HwndWrapper.has_style()
以轻松检查窗口是否具有特定样式。
HwndWrapper.font
pywinauto.controls.hwndwrapper.HwndWrapper.font()
返回窗口的字体
窗口的字体用于绘制该窗口的文本。它是一种具有字体名称、高度、宽度等属性的结构。
请参阅 win32structures。LOGFONTW 了解更多信息。
HwndWrapper.fonts
pywinauto.controls.hwndwrapper.HwndWrapper.fonts()
返回此控件中每个项的字体
它是控件的字体列表。从具有多个项的控件中提取所有字体时,通常会被重写。
它始终是包含一种或多种字体的列表:
- 第一个 elemtent 是控制字体
- 后续元素包含控件中任何项的字体(例如列表框/组合框中的项、tabcontrol 中的选项卡)
HwndWrapper.full_control_type
pywinauto.controls.hwndwrapper.HwndWrapper.full_control_type()
返回控件的 .NET 类型(完整、未删减)
HwndWrapper.get_active
pywinauto.controls.hwndwrapper.HwndWrapper.get_active()
将句柄返回到进程中的活动窗口
HwndWrapper.get_focus
pywinauto.controls.hwndwrapper.HwndWrapper.get_focus()
在此窗口的进程中返回具有焦点的控件
HwndWrapper.get_show_state
pywinauto.controls.hwndwrapper.HwndWrapper.get_show_state()
获取显示状态和最大化/最小化/恢复状态
返回一个值,该值是以下各项的并集:
参数 | 说明 |
---|---|
SW_HIDE | 窗口是隐藏的 |
SW_MAXIMIZE | 窗口最大化 |
SW_MINIMIZE | 窗口最小化 |
SW_RESTORE | 窗口处于“已恢复”状态(既未最小化也不最大的正常状态) |
SW_SHOW | 窗口未隐藏 |
HwndWrapper.get_toolbar
pywinauto.controls.hwndwrapper.HwndWrapper.get_toolbar()
获取第一个子工具栏(如果存在)
HwndWrapper.has_exstyle
pywinauto.controls.hwndwrapper.HwndWrapper.has_exstyle(exstyle)
如果控件具有指定的扩展样式,则返回 True
HwndWrapper.has_focus
pywinauto.controls.hwndwrapper.HwndWrapper.has_focus()
检查窗口是否处于焦点(前景)
HwndWrapper.has_keyboard_focus
pywinauto.controls.hwndwrapper.HwndWrapper.has_keyboard_focus()
检查此控件上的键盘焦点。
HwndWrapper.has_style
pywinauto.controls.hwndwrapper.HwndWrapper.has_style(style)
如果控件具有指定的样式,则返回 True
HwndWrapper.is_active
pywinauto.controls.hwndwrapper.HwndWrapper.is_active()
窗口是否处于活动状态
HwndWrapper.is_dialog
pywinauto.controls.hwndwrapper.HwndWrapper.is_dialog()
如果控件是顶级窗口,则返回 true
HwndWrapper.is_maximized
pywinauto.controls.hwndwrapper.HwndWrapper.is_maximized()
指示窗口是否最大化
HwndWrapper.is_minimized
pywinauto.controls.hwndwrapper.HwndWrapper.is_minimized()
指示窗口是否最小化
HwndWrapper.is_normal
pywinauto.controls.hwndwrapper.HwndWrapper.is_normal()
指示窗口是否正常(即未最小化和未最大化)
HwndWrapper.is_unicode
pywinauto.controls.hwndwrapper.HwndWrapper.is_unicode()
窗口是否为 unicode
如果窗口是由 RegisterClass(Ex) 的 Wide char 版本注册的,则该窗口为 Unicode。
HwndWrapper.maximize
pywinauto.controls.hwndwrapper.HwndWrapper.maximize()
最大化窗口
HwndWrapper.menu
pywinauto.controls.hwndwrapper.HwndWrapper.menu()
返回控件的菜单
HwndWrapper.menu_item
pywinauto.controls.hwndwrapper.HwndWrapper.menu_item(path, exact=False)
返回 path 指定的菜单项
path 可以是“MenuItem->MenuItem->MenuItem…”形式的字符串其中,每个 MenuItem 是菜单该级别的项的文本。例如:
File->Export->ExportAsPNG
空格并不重要,所以你也可以写…
File -Export -Export As PNG
HwndWrapper.menu_items
pywinauto.controls.hwndwrapper.HwndWrapper.menu_items()
返回对话框的菜单项
如果没有菜单项,则返回一个空列表
HwndWrapper.menu_select
pywinauto.controls.hwndwrapper.HwndWrapper.menu_select(path, exact=False)
查找路径指定的菜单项
完整路径语法在以下位置指定: controls.menuwrapper.Menu.get_menu_path()
HwndWrapper.minimize
pywinauto.controls.hwndwrapper.HwndWrapper.minimize()
最小化窗口
HwndWrapper.move_mouse
pywinauto.controls.hwndwrapper.HwndWrapper.move_mouse(coords=(0, 0), pressed='', absolute=False)
将鼠标移动WM_MOUSEMOVE
HwndWrapper.move_window
pywinauto.controls.hwndwrapper.HwndWrapper.move_window(x=None, y=None, width=None, height=None, repaint=True)
将窗口移动到新坐标
参数 | 说明 |
---|---|
x | 指定窗口的新左侧位置。默认为窗口的当前左侧位置。 |
y | 指定窗口的新顶部位置。默认为窗口的当前顶部位置。 |
width | 指定窗口的新宽度。默认为窗口的当前宽度。 |
height | 指定窗口的新高度。默认为窗口的当前高度。 |
repaint | 窗口是否应重新绘制。默认为True。 |
HwndWrapper.notify_parent
pywinauto.controls.hwndwrapper.HwndWrapper.notify_parent(message, controlID=None)
将通知消息发送给此控件的父级
HwndWrapper.owner
pywinauto.controls.hwndwrapper.HwndWrapper.owner()
返回窗口的所有者窗口(如果存在)
如果没有所有者,则返回 None。
HwndWrapper.popup_window
pywinauto.controls.hwndwrapper.HwndWrapper.popup_window()
如果显示,则返回已启用的弹出窗口包装器。
如果当时没有启用弹出窗口,则返回 self。请参阅 MSDN 参考:https://msdn.microsoft.com/en-us/library/windows/desktop/ms633515.aspx 。
请不要在生产代码中使用 - 尚未经过全面测试
HwndWrapper.post_message
pywinauto.controls.hwndwrapper.HwndWrapper.post_message(message, wparam=0, lparam=0)
将消息发布到控制消息队列并返回
HwndWrapper.press_mouse
pywinauto.controls.hwndwrapper.HwndWrapper.press_mouse(button='left', coords=(0, 0), pressed='')
按下鼠标按钮
HwndWrapper.release_mouse
pywinauto.controls.hwndwrapper.HwndWrapper.release_mouse(button='left', coords=(0, 0), pressed='')
松开鼠标按钮
HwndWrapper.restore
pywinauto.controls.hwndwrapper.HwndWrapper.restore()
将窗口恢复到以前的状态(正常或最大化)
HwndWrapper.right_click
pywinauto.controls.hwndwrapper.HwndWrapper.right_click(pressed='', coords=(0, 0))
执行右键单击操作
HwndWrapper.scroll
pywinauto.controls.hwndwrapper.HwndWrapper.scroll(direction, amount, count=1, retry_interval=None)
要求控件自行滚动
参数 | 说明 |
---|---|
direction | 滚动的方向,可以是字符串 “up”、“down”、“left” 或 “right”,表示向上、向下、向左或向右滚动。 |
amount | 每次滚动的距离或者步长,通常是一个整数值,表示以像素为单位的滚动量。可以是 line 按行滚动、page 按页面滚动,通常是窗口的可见区域大小、end 表示滚动到内容的末尾。 |
count | (可选)指定滚动的次数,默认为1。如果需要多次滚动,可以提供一个大于1的整数值。 |
retry_interval | (可选)表示在尝试滚动失败时的重试间隔时间,以秒为单位。 |
HwndWrapper.send_chars
pywinauto.controls.hwndwrapper.HwndWrapper.send_chars(chars, with_spaces=True, with_tabs=True, with_newlines=True)
以无提示方式将字符串发送到非活动窗口中的控件
如果遇到没有相应字符的虚拟键(例如 VK_LEFT、VK_DELETE),则会引发 KeySequenceError。请考虑使用方法 send_keystrokes 进行此类输入。
HwndWrapper.send_command
pywinauto.controls.hwndwrapper.HwndWrapper.send_command(commandID)
HwndWrapper.send_keystrokes
pywinauto.controls.hwndwrapper.HwndWrapper.send_keystrokes(keystrokes, with_spaces=True, with_tabs=True, with_newlines=True)
以静默方式向非活动窗口中的控件发送击键
它解析修饰符 Shift(+)、Control(^)、Menu(%) 和序列,如 “{TAB}”、“{ENTER}” 有关序列和修饰符的更多信息,请导航到模块键盘
由于每个应用程序处理输入的方式不同,并且此方法旨在用于非活动窗口,因此它可能仅部分工作,具体取决于目标应用程序。如果窗口处于非活动状态不是必需的,请使用可靠的 type_keys 方法。
HwndWrapper.send_message
pywinauto.controls.hwndwrapper.HwndWrapper.send_message(message, wparam=0, lparam=0)
向控件发送消息并等待它返回
HwndWrapper.send_message_timeout
pywinauto.controls.hwndwrapper.HwndWrapper.send_message_timeout(message, wparam=0, lparam=0, timeout=None, timeoutflags=<MagicMock name='mock.win32defines.SMTO_NORMAL' id='140124679165712'>)
向控件发送消息并等待它返回或超时
如果未给出超时,则将使用默认超时 0.01 秒。
HwndWrapper.set_application_data
pywinauto.controls.hwndwrapper.HwndWrapper.set_application_data(appdata)
应用程序数据是软件先前运行的数据
这对于在另一种口语上运行为一种口语编写的脚本至关重要
HwndWrapper.set_focus
pywinauto.controls.hwndwrapper.HwndWrapper.set_focus()
将焦点设置为此控件。
Bring the window to the foreground first. The system restricts which processes can set the foreground window so the mouse cursor is removed from the screen to prevent any side effects.
首先将窗口置于前景。系统限制哪些进程可以设置前景窗口 (https://msdn.microsoft.com/en-us/library/windows/desktop/ms633539(v=vs.85).aspx),因此鼠标光标将从屏幕上移除以防止任何副作用。
HwndWrapper.set_keyboard_focus
pywinauto.controls.hwndwrapper.HwndWrapper.set_keyboard_focus()
将键盘焦点设置为此控件。
HwndWrapper.set_transparency
pywinauto.controls.hwndwrapper.HwndWrapper.set_transparency(alpha=120)
通过 alpha 属性将窗口透明度从 0 设置为 255
HwndWrapper.set_window_text
pywinauto.controls.hwndwrapper.HwndWrapper.set_window_text(text, append=False)
设置窗口的文本
HwndWrapper.style
pywinauto.controls.hwndwrapper.HwndWrapper.style()
- 返回窗口的样式
- 返回值为长。
WS_*
和特定控件特定样式的组合。请参阅 HwndWrapper.has_style()
以轻松检查窗口是否具有特定样式。
HwndWrapper.user_data
pywinauto.controls.hwndwrapper.HwndWrapper.user_data()
与窗口相关的额外数据
此值是与窗口关联的长值,很少包含有用的数据(或至少是您知道使用的数据)。
HwndWrapper.wait_for_idle
pywinauto.controls.hwndwrapper.HwndWrapper.wait_for_idle()
用于等待线程或窗口空闲状态的后端特定函数
exception hwndwrapper.InvalidWindowHandle
pywinauto.controls.hwndwrapper.InvalidWindowHandle
Bases: RuntimeError
当无效句柄传递给 HwndWrapper 时引发
hwndwrapper.get_dialog_props_from_handle
pywinauto.controls.hwndwrapper.get_dialog_props_from_handle
以字典列表的形式获取所有控件的属性