使用 "^%{L}" 在 BluePrism 中执行 cntrl+Alt+L 但所需的窗口未打开,手动执行时该命令通常工作正常。
6 回答
首先,您需要确保按照适当的步骤将密钥发送到应用程序。建议首先激活应用程序(这确保密钥被发送到正确的应用程序),然后使用等待阶段(这确保 BluePrism 在正确的时间发送密钥;即当应用程序准备好接受密钥时) ,然后在发送密钥所在的根应用程序上使用导航阶段,如下所示:
(如果您在窗口中输入特定字段,则在发送键之前在字段本身上使用额外的焦点导航阶段)。
在导航阶段,您有两个可能的选项来发送密钥:
- 全局发送密钥
- 全局发送关键事件
全局发送密钥
您可以在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
(注意这里l
和L
这里是等价的,考虑到它们不在全局发送键中,这也很奇怪) .
- 使用导航阶段激活应用程序。
- 在激活和发送密钥之间添加 1 秒等待。
- 使用全局发送密钥事件。<{ctrl}<{alt}L>{alt}>{ctrl}
我认为这是您正在寻找的 GLOBAL SEND KEY EVENT 值。
这是 shift+I 动作值:
"<{SHIFT}I>{SHIFT}"
我会尝试 ctrl+Alt+L 可能是这样的:
"<{CTRL}{ALT}L>{CTRL}"
"<" & ">" 是 Push down & Release
尝试使用 Global SendKey 而不是 GSEvents。即 SHIFT+HOME = "+({HOME})" 蓝色棱镜需要的正则括号来了解在哪里释放 Shift ("+")。
确保您使用的是 Application Modeller 中的根元素(列表顶部的第一个元素),而不是任何子元素。使用带有该元素的导航阶段以及 Global Send Key 或 Global Send Key Event 操作。语法“^%{L}”在其他方面是正确的,尽管您没有说您尝试自动化的是什么(Excel、Word、IE、Citrix...??)。