# pywinauto.application 模块
application(应用程序)模块是用户首先使用的主要模块。
开始自动化应用程序时,必须初始化Application类的实例. 然后你必需使用 [`Application.start()`](#pywinauto.application.Application.start "pywinauto.application.Application.start") 启动应用程序或使用 [`Application.connect()`](#pywinauto.application.Application.connect "pywinauto.application.Application.connect")连接到已启动的应用程序。
获得Application实例后,您可以使用以下方法之一访问该应用程序中的对话框。
~~~
dlg = app.YourDialogTitle
dlg = app.child_window(title="your title", classname="your class", ...)
dlg = app['Your Dialog Title']
~~~
类似地,一旦你有了一个对话框,你就可以用几乎完全相同的方式从该对话框中获得一个控件。
~~~
ctrl = dlg.YourControlTitle
ctrl = dlg.child_window(title="Your control", classname="Button", ...)
ctrl = dlg["Your control"]
~~~
>[info]注意
对于控件和对话框的属性访问,您不必完全拥有控件的标题,它可以与可用的对话框或控件进行最佳匹配。
>[info]另请参见
`pywinauto.findwindows.find_elements()`表示可以同时传递给: `Application.window()` 和`WindowSpecification.child_window()`的关键字参数
>[success]*异常* `pywinauto.application.AppNotConnected`
基类: `Exception`
应用程序尚未与进程相关联
>[success]*异常* `pywinauto.application.AppStartError`
基类: `Exception`
启动应用程序时出现问题
>[success]*类* `pywinauto.application.Application(backend='win32', datafilename=None)`
基类: `object`
代表一个应用程序
>`__getattribute__(attr_name)`
找到应用程序的指定对话框
>`__getitem__(key)`
查找应用程序的指定对话框
>`GetMatchHistoryItem(index)`
不应该使用 - 应用程序数据实现的一部分
>`WriteAppData(filename)`
不应该使用 - 应用程序数据实现的一部分
>`active()`
为应用程序的活动窗口返回WindowsSpecification
>`connect(**kwargs)`
连接到已在运行的进程
该动作仅根据一个参数执行
**参数**:
* process – 目标的进程ID
* handle – 目标的窗口句柄
* path – 用于启动目标的路径
* timeout – 进程启动超时(如果指定了路径,则与此相关)
>[info]另请参见
[`pywinauto.findwindows.find_elements()`](pywinauto.findwindows.html#pywinauto.findwindows.find_elements "pywinauto.findwindows.find_elements") -也可以使用关键字参数来代替**process**、**handle**或**path**
>`cpu_usage(interval=None)`
返回指定秒数内的CPU使用率百分比
>`is64bit()`
如果运行进程为64位,则返回True
>`is_process_running()`
检查进程是否正在运行。
可以在启动/连接之前调用。
如果进程正在运行,则返回true;否则返回false。
>`kill(soft=False)`
尝试关闭(可选)并终止应用程序
对话框可能会弹出,要求保存数据-但应用程序仍将被终止-您将无法单击按钮。只有当可以像在任务管理器中那样终止进程时,才应该使用此选项。
>`start(cmd_line, timeout=None, retry_interval=None, create_new_console=False, wait_for_idle=True, work_dir=None)`
按cmd_line指定启动应用程序
>`top_window()`
返回应用程序当前顶部窗口的WindowsSpecification
>`wait_cpu_usage_lower(threshold=2.5, timeout=None, usage_interval=None)`
等待,直到进程CPU使用率百分比小于指定的阈值
>`wait_for_process_exit(timeout=None, retry_interval=None)`
等待进程退出,直到超时
如果达到超时,则引发TimeoutError异常
>`window(kwargs)`
返回应用程序的窗口
您可以指定与findwindows.find_windows相同的参数。 它将添加process参数以确保窗口来自当前进程。
>[info]参考[`pywinauto.findwindows.find_elements()`](pywinauto.findwindows.html#pywinauto.findwindows.find_elements "pywinauto.findwindows.find_elements") 用于完整的参数描述.
>`windows(kwargs)`
返回应用程序的包装顶级窗口列表
>[success] `pywinauto.application.AssertValidProcess(process_id)`
如果process_id不是有效的进程ID,则引发ProcessNotFound异常
>[success] *异常* `pywinauto.application.ProcessNotFoundError`
基类: `Exception`
找不到该进程
>[success] *类* `pywinauto.application.WindowSpecification(search_criteria)`
基类: `object`
查找窗口或控件的规范
使用时会解析窗口。您还可以等待窗口的存在或不存在
>`__getattribute__(attr_name)`
此类的属性访问
如果我们已经有对话框和控件的标准,那么解析控件并返回请求的属性。
如果我们只有对话框的标准,但请求的属性是DialogWrapper的属性,则解析对话框并返回请求的属性。
否则将功能委托给`__getitem __()` - 它为控件设置了适当的标准。
>`__getitem__(key)`
允许通过项目访问权限访问对话框/控件
比如本次允许:
~~~
app['DialogTitle']['ControlTextClass']
~~~
用于访问对话框和控件。
这和`__getattribute __()`都使用HowTo文档中概述的规则。
>`WAIT_CRITERIA_MAP = {'exists': ('exists',), 'visible': ('is_visible',), 'enabled': ('is_enabled',), 'ready': ('is_visible', 'is_enabled'), 'active': ('is_active',)}`
>`child_window(criteria)`
添加控件的条件
解决此窗口规范后,将使用它来匹配控件。
>`dump_tree(depth=None, filename=None)`
打印'标识符'
将控件及其子代的标识符打印到**depth**(如果**None**,则打印整个子树)。
>[info]注意
通过此方法打印的标识符已经是唯一的。 因此,如果您有2个编辑框,则它们的标识符中不会同时显示“Edit”。 事实上,第一个可以被称为“Edit”,“Edit0”,“Edit1”,第二个应该被称为“Edit2”。
>`exists(timeout=None, retry_interval=None)`
检查窗口是否存在,如果控件存在则返回True
参数:
timeout – 等待控件存在的最长时间。默认为Timings.exists_timeout
retry_interval – 检查控件是否存在此秒数。默认为Timings.exists_retry
>`print_control_identifiers(depth=None, filename=None)`
打印'标识符'
将控件及其子代的标识符打印到**depth**(如果**None**,则打印整个子树)。
>[info]注意
通过此方法打印的标识符已经是唯一的。 因此,如果您有2个编辑框,则它们的标识符中不会同时显示“Edit”。 事实上,第一个可以被称为“Edit”,“Edit0”,“Edit1”,第二个应该被称为“Edit2”。
>`print_ctrl_ids(depth=None, filename=None)`
打印'标识符'
将控件及其子代的标识符打印到**depth**(如果**None**,则打印整个子树)。
>[info]注意
通过此方法打印的标识符已经是唯一的。 因此,如果您有2个编辑框,则它们的标识符中不会同时显示“Edit”。 事实上,第一个可以被称为“Edit”,“Edit0”,“Edit1”,第二个应该被称为“Edit2”。
>`wait(wait_for, timeout=None, retry_interval=None)`
等待窗口处于特定状态。
参数:
* **wait_for** –等待窗口进入的状态。它可以是以下任何状态,也可以按空格组合状态。 'exists'表示窗口是有效的句柄。 'visible'表示窗口未隐藏。 'enabled'表示窗口未被禁用。 'ready'表示窗口可见并已启用。 'active'表示窗口处于活动状态
* **timeout** – 如果窗口在此秒数后未处于适当状态,则引发pywinauto.timings.TimeoutError()。 默认: pywinauto.timings.Timings.window_find_timeout.
* **retry_interval** – 每次重试之间的等待时间。默认: pywinauto.timings.Timings.window_find_retry.
等待对话存在,已准备就绪,已启用且可见的示例:
~~~
self.Dlg.wait("exists enabled visible ready")
~~~
>[info]另请参见
`WindowSpecification.wait_not()`
`pywinauto.timings.TimeoutError()`
>`wait_not(wait_for_not, timeout=None, retry_interval=None)`
等待窗口不处于特定状态。
参数:
* wait_for_not –等待窗口不在的状态。它可以是以下任何状态,也可以通过空格组合状态。 'exists'表示窗口是有效的句柄。 'visible'表示窗口未隐藏。 'enabled'表示窗口未被禁用。 'ready'表示窗口可见并已启用。 'active'表示窗口处于活动状态
* timeout – 如果窗口在此秒数之后还处于状态,则引发pywinauto.timings.TimeoutError()。 默认: pywinauto.timings.Timings.window_find_timeout.
* retry_interval – 每次重试之间的等待时间。默认: pywinauto.timings.Timings.window_find_retry.
等待对话框未就绪、未启用或不可见的示例:
~~~
self.Dlg.wait_not("enabled visible ready")
~~~
>[info]另请参见
`WindowSpecification.wait()`
`pywinauto.timings.TimeoutError()`
>`window(criteria)`
child_window()的弃用别名
>`wrapper_object()`
允许调用代码获取HwndWrapper对象
>[success]`pywinauto.application.assert_valid_process(process_id)`
如果process_id不是有效的进程ID,则引发ProcessNotFound错误
>[success] `pywinauto.application.process_from_module(module)`
用路径模块返回正在运行的进程
>[success] `pywinauto.application.process_get_modules()`
将进程列表作为元组返回(pid,exe_path)
>[success] `pywinauto.application.process_module(process_id)`
返回此进程的字符串模块名称
- 什么是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