0

使用 "^%{L}" 在 BluePrism 中执行 cntrl+Alt+L 但所需的窗口未打开,手动执行时该命令通常工作正常。

4

6 回答 6

3

首先,您需要确保按照适当的步骤将密钥发送到应用程序。建议首先激活应用程序(这确保密钥被发送到正确的应用程序),然后使用等待阶段(这确保 BluePrism 在正确的时间发送密钥;即当应用程序准备好接受密钥时) ,然后在发送密钥所在的根应用程序上使用导航阶段,如下所示:

在此处输入图像描述

(如果您在窗口中输入特定字段,则在发送键之前在字段本身上使用额外的焦点导航阶段)。

在导航阶段,您有两个可能的选项来发送密钥:

  1. 全局发送密钥
  2. 全局发送关键事件

在此处输入图像描述

全局发送密钥

您可以在BluePrism 门户网站上找到官方指南(第 10.2 节)。它并没有真正详细说明全局发送键的组合键的发送,但你真的必须这样做:

^(%l)

请注意,如果您发送^(%L),这类似于发送 Ctrl+Alt+Shift+L。括号表示对于 的键控%l,按住 Shift 键。以上等价于^(%(l))。普通键也不需要大括号,如果在全局发送键事件中使用它们会导致问题(即{L}在全局发送键中表示 Shift+L,但在全局发送键事件中会给您一个错误)。

指南的相关部分: 在此处输入图像描述

所以你所做的^%{L}对 BluePrism 来说并没有什么意义。它可能是发送 Ctrl+Alt,然后分别发送 Shift+L(我无法真正确认这一点,但这是我在 BluePrism 上进行测试后的猜测,但肯定表明它不起作用)。

全局发送关键事件

您可以在我之前链接的同一指南和部分中找到文档。这一次,它确实显示了如何发送组合键,因此对于您的情况,全局发送键事件的另一个选项将是:

<{CTRL}<{ALT}l>{ALT}>{CTRL}

我不太喜欢 Global Send Key Events,因为它的输入时间更长,而且您必须注意更多的事情,但本质上,如果您在继续下一个键之前输入打开和关闭语法,它会变得更容易。例如,要执行上述操作,首先键入<{CTRL}>{CTRL},然后在中间插入 ALT 部分更容易:<{CTRL}<{ALT}>{ALT}>{CTRL},然后插入l(注意这里lL这里是等价的,考虑到它们不在全局发送键中,这也很奇怪) .

于 2018-07-31T06:28:35.767 回答
0

Global Send Keys 会将密钥发送到任何关注屏幕的应用程序,所以我建议:

  1. 通过使用导航阶段“激活应用程序”或“全局鼠标单击”将焦点设置在所需窗口上。

  2. 使用全局发送密钥

BluePrism 代码片段

请记住,全局鼠标单击可能会再次导致意外,因为它会将事件直接发送到屏幕,并且另一个应用程序/窗口可能会覆盖您刚刚单击的区域。

有关全局发送键和全局发送键事件的更多信息,我会阅读 BluePrism 手册:发送键和发送键事件

学习一些表面自动化原理也可能是值得的,因为它可以帮助您更好地了解这些全局操作正在做什么:表面自动化简介

于 2018-07-30T16:56:03.013 回答
0
  1. 使用导航阶段激活应用程序。
  2. 在激活和发送密钥之间添加 1 秒等待。
  3. 使用全局发送密钥事件。<{ctrl}<{alt}L>{alt}>{ctrl}
于 2019-01-03T06:58:49.037 回答
0

我认为这是您正在寻找的 GLOBAL SEND KEY EVENT 值。

这是 shift+I 动作值:

"<{SHIFT}I>{SHIFT}"

我会尝试 ctrl+Alt+L 可能是这样的:

"<{CTRL}{ALT}L>{CTRL}"

"<" & ">" 是 Push down & Release

于 2018-01-31T12:33:58.247 回答
-1

尝试使用 Global SendKey 而不是 GSEvents。即 SHIFT+HOME = "+({HOME})" 蓝色棱镜需要的正则括号来了解在哪里释放 Shift ("+")。

于 2018-04-18T08:43:50.350 回答
-1

确保您使用的是 Application Modeller 中的根元素(列表顶部的第一个元素),而不是任何子元素。使用带有该元素的导航阶段以及 Global Send Key 或 Global Send Key Event 操作。语法“^%{L}”在其他方面是正确的,尽管您没有说您尝试自动化的是什么(Excel、Word、IE、Citrix...??)。

于 2018-02-01T11:06:28.187 回答