查找一个窗口
查找当前未实现自动化的窗口,并将其附加到自动化上下文。
命令可用性: 本地 IBM RPA SaaS 和 IBM RPA
描述
此命令标识当前未自动执行的特定窗口,将其分配给变量并将其附加到自动化上下文。 允许机器人与识别的窗口进行交互。
脚本语法
IBM RPA 的专有脚本语言的语法与其他编程语言类似。 该脚本语法在脚本文件中定义命令的语法。 您可以在 IBM RPA Studio的 脚本 方式下使用此语法。
findWindow [--useregex(Boolean)] [--title(String)] --regexPattern(String) [--regexOptions(DisplayableRegexOptions)] [--id(String)] [--classname(String)] [--processid(Numeric)] [--processname(String)] [--byparent(Boolean)] [--window(Window)] [--recursive(Boolean)] [--safesearch(Boolean)] [--styles(Nullable<AutomationWindowStyles>)] [--minimumheight(Numeric)] [--minimumwidth(Numeric)] (Window)=value (Numeric)=processId (Boolean)=success
依赖关系
至少需要下列其中一个参数:
- 标题
- 标识
- 类名
- 进程标识
- 进程名称
- 样式
- 最小高度
- 最小宽度
输入参数
下表显示了此命令中提供的输入参数的列表。 在表中,您可以看到在 IBM RPA Studio的脚本方式及其 Designer 方式等效标签中工作时的参数名称。
| 设计器方式标签 | 脚本方式名称 | 必需的 | 接受的变量类型 | 描述 |
|---|---|---|---|---|
| 使用正则表达式 | useregex |
Optional |
Boolean |
启用以使用正则表达式来查找窗口。 |
| 标题 | title |
Optional |
Text |
要查找的窗口的标题。 |
| 正则表达式 | regexPattern |
Only when Use Regular Expression is True |
Text |
用于搜索窗口的正则表达式。 |
| 选项 | regexOptions |
Optional |
DisplayableRegexOptions |
使用正则表达式过滤搜索匹配项。 请参阅 regexOptions 参数选项 以获取更多详细信息。 |
| 标识 | id |
Optional |
Text |
要找到的窗口的标识。 |
| 类名 | classname |
Optional |
Text |
要找到的窗口的类名。 |
| 进程标识 | processId |
Optional |
Number |
窗口所属的进程的标识。 |
| 进程名称 | processname |
Optional |
Text |
窗口所属的进程的名称。 |
| 在附加的窗口中搜索 | byparent |
Optional |
Boolean |
启用以允许搜索附加窗口的子窗口。 |
| 窗口 | window |
Optional |
Window |
要在其中查找子窗口的主窗口。 |
| 递归 | recursive |
Optional |
Boolean |
启用以在窗口中搜索窗口。 |
| 安全搜索 | safesearch |
Optional |
Boolean |
启用以使用更高性能的搜索算法。 |
| 样式 | styles |
Optional |
AutomationWindowStyles |
要查找的窗口的样式。 请参阅 styles 参数选项 以获取更多详细信息。 |
| 最小高度 | minimumheight |
Optional |
Number |
将找到的窗口的最小高度。 |
| 最小宽度 | minimumwidth |
Optional |
Number |
要找到的窗口的最小宽度。 |
regexOptions 参数选项
下表显示了可用于 regexOptions 输入参数的选项。 该表显示了在脚本方式下工作时的可用选项以及在设计器方式下的等效标签。
| 设计器方式标签 | 脚本方式名称 | 描述 |
|---|---|---|
| 已编译 | Compiled |
编译正则表达式而不是解释。 |
| 区域固定格式 | CultureInvariant |
忽视语言上的文化差异。 |
| ECMA 脚本 | ECMAScript |
解释 ECMA 脚本表达式。 |
| 忽略大小写 | IgnoreCase |
不区分大小写的搜索。 |
| 显式捕获 | ExplicitCapture |
唯一有效的捕获是格式为?<name> subexpression的显式命名或编号的组。 |
| 忽略模式空格 | IgnorePatternWhitespace |
忽略空格字符,并在数字符号 (#) 后启用注释。 |
| 从右到左 | RightToLeft |
从右到左或从最后到第一个读取正则表达式。 |
| 单行 | Singleline |
更改点 (.) 的含义,它与除 以外的每个字符匹配。 |
| 多行 | Multiline |
允许插入标记 (^) 和美元符号 ($) 符号与换行符匹配。 |
styles 参数选项
下表显示了可用于 styles 输入参数的选项。 该表显示了在脚本方式下工作时的可用选项以及在设计器方式下的等效标签。
| 设计器方式标签 | 脚本方式名称 | 描述 |
|---|---|---|
| 子代 | Child |
指示您正在主窗口的上下文中查找子窗口。 |
| 对话 | Dialog |
指示您正在查找对话窗口。 |
输出参数
| 设计器方式标签 | 脚本方式名称 | 接受的变量类型 | 描述 |
|---|---|---|---|
| 窗口 | value |
Window |
返回找到的窗口。 |
| 进程标识 | processId |
Number |
返回进程标识。 |
| 成功 | success |
Boolean |
如果成功找到窗口,那么返回 True ,否则返回 False 。 |
示例
以下代码示例演示如何使用 查找窗口 命令来查找由 启动并附加窗口 (launchWindow) 命令打开的记事本窗口。
defVar --name foundWindow --type Boolean
defVar --name Id --type Numeric
launchWindow --executablepath "notepad.exe" Id=processId
findWindow --processid ${Id} foundWindow=success
logMessage --message "Result found the window: ${foundWindow}" --type "Info"
// Displays on the console whether or not the window was found.
限制
如果命令找不到窗口,机器人将继续处理当前连接的窗口。
此命令不能与 Microsoft™ Windows 11 操作系统上的通用 Windows 平台 (UWP) 应用程序配合使用。
当您在受 Windows Server 2016 中基于 JavaScript的修改的动态 Web 页面上使用该命令时,由于在非 Windows 应用程序中使用了 Win32 驱动程序,因此高速缓存的元素不会反映更新后的窗口元素树。 使用启用了 forcerefresh 参数的 Verify enabled (
veryEnabled) 命令来正确装入窗口元素树。