在阻止输入动作之后,UI 自动化动作失败。

本文针对一个问题提供了解决方案,即在使用适用于桌面的 Power Automate 中执行块输入动作后,涉及鼠标或键盘输入的 UI 或 Web 自动化操作无法按预期工作。

症状

运行包含 Block Input 操作的桌面流时,如果将 Block It 参数设置为 True,后续的用户界面 (UI) 或 Web 自动化操作可能无法按预期工作。 流会继续执行后续操作,而不会显示任何错误,但鼠标或键盘交互未执行。

阻止输入操作后,以下操作可能无法正常工作:

  • 在窗口中填充文本字段
  • 在窗口中按按钮
  • 在窗口中选择单选按钮
  • 在窗口中设置复选框状态
  • 在窗口中设置下拉列表值
  • 在窗口中单击 UI 元素
  • 在窗口中选择选项卡
  • 将鼠标悬停在窗口中的 UI 元素上
  • 在网页上单击链接(如果启用了 “发送物理单击 ”选项)
  • 在网页上填充文本字段(如果启用了 使用物理击键选项填充文本
  • 发送密钥

原因

块输入操作需要更高权限才能运行,因其关键功能。 如果通过将阻止它设置为True来激活阻止输入,该操作可能会干扰需要物理鼠标或键盘输入的后续 UI 或 Web 自动化操作。

注释

当您执行以下操作时,阻止输入 操作才有效:

  • 通过控制台运行桌面流,或通过设计器对其进行调试。
  • 在桌面环境中通过管理员权限运行 Power Automate。

有关详细信息,请参阅 在提升的权限下运行 Power Automate

解决方案 1:不要使用“屏蔽输入”动作

若要防止此问题,请尽可能设计不包含Block Input操作的流。

解决方案 2:使用备用鼠标和键盘操作

如果必须使用 块输入 和执行鼠标操作,请使用 鼠标和键盘 类别中的以下操作之一,而不是 UI 自动化操作。 有关详细信息,请参阅 鼠标和键盘动作参考

替代方案 A:使用“移动鼠标”和“发送鼠标单击”操作

  1. 使用 “移动鼠标”动作 来将鼠标指针移动到特定位置。
  2. 使用 “发送鼠标单击” 来执行点击。

移动鼠标动作需要您指定坐标。 使用 Relative to 参数指定新鼠标位置是否相对于:

  • 当前鼠标位置
  • 活动窗口 (最重要的窗口)
  • 屏幕 (相对于屏幕左上角)

B 方案:使用“将鼠标移动到图像”操作

启用“移动鼠标后发送点击”选项,使用“移动鼠标到图像”动作。 此操作将鼠标移动到屏幕上指定图像的位置,然后执行单击操作。

选项 C:将鼠标移动至屏幕上的文字(OCR)操作

通过启用移动鼠标选项后单击“发送”作,使用“在屏幕上将鼠标移动到文本”作。 此作使用光学字符识别(OCR)在屏幕上定位文本,将鼠标移动到该位置,然后发送单击。

解决方案 3:暂时禁用 Block Input (块输入)

如果必须使用 块输入 ,但还必须执行需要物理输入的作,请使用以下方法:

  1. 如果需要阻止输入,请使用“阻止输入”,方法是将“阻止它”设置为True
  2. 在运行需要鼠标或键盘输入的 UI 或 Web 自动化操作之前,请添加一个阻止输入操作,并将阻止它设置为False
  3. 运行 UI 或 Web 自动化操作。
  4. 如果在动作运行后仍必须阻止输入,请添加另一个阻止输入的动作,并将其属性设置为True

使用此方法可以暂时为特定的操作启用物理输入,同时保持对流程其余部分的输入阻塞。