コンテンツにスキップ

フロー実行中のユーザーの操作をブロックする

フロー実行中に、誤ってマウスやキーボードに触れてしまい、アクションにミスが生じるような経験はないでしょうか。

アクションの作り方によっては、マウス操作やキーボードの影響を受けないフローである場合もありますが、パスワードを操作するような簡単には変更がきかない場面や、機密情報を操作するような少しの誤動作で大きな影響を受ける場面など、少しでも精度を上げたい場面はいくつかあると思います。

ここではフロー実行中のユーザーの操作をブロックする方法を解説します。

「入力のブロック」アクションの詳細

Section titled “「入力のブロック」アクションの詳細”

今回使用するのは、「入力のブロック」というアクションです。

アクションは以下のパラメーターを持ちます。

パラメーター名 値
ブロックする マウスとキーボードの入力をブロックするか、ブロックを解除するかを選択

action

「ブロックする」をオンにしたアクションをフローのどこかに追加すると、そのアクション以降フローが終了するまでユーザーからの操作を受け付けなくなります。

「ブロックする」をオフにしたアクションを後ろに追加すれば、フローの一部だけユーザーの操作をブロックするように設定することも可能です。

サンプルフローをコピーアンドペーストで追加する

Section titled “サンプルフローをコピーアンドペーストで追加する”

今回はサンプルとして、ユーザーからの操作を 5 秒間ブロックし、その間ダイアログを表示するフローを作成しました。

以下のコードをコピーし、Power Automate Desktop の編集画面に貼り付けることで、対象のアクションが追加されます。

MouseAndKeyboard.BlockInput BlockIt: True
Display.ShowMessageDialog.ShowMessageWithTimeout Title: $'''5秒待ってください''' Message: $'''5秒間操作を制限しています。''' Icon: Display.Icon.Information Buttons: Display.Buttons.OK DefaultButton: Display.DefaultButton.Button1 IsTopMost: True Timeout: 5 ButtonPressed=> ButtonPressed
MouseAndKeyboard.BlockInput BlockIt: False

Power Automate Desktop を操作してアクションを追加する

Section titled “Power Automate Desktop を操作してアクションを追加する”
  1. 「アクションの検索」から、「入力のブロック」と入力します。

  2. パラメーターを以下のように設定します。

    パラメーター名 値
    ブロックする オン
  3. 実行することで、ブロック開始から解除までの間はユーザーからの入力を受け付けなくなります。解除するアクションを用意しなかった場合は、フローの終了、または強制終了まで入力を受け付けません。

強制的にブロックを解除する方法

Section titled “強制的にブロックを解除する方法”

Windows でキーボードとマウスの入力をブロックする BlockInput 関数の仕様では、入力のブロック中に Ctrl + Alt + Del を押すと、入力のブロックが解除されるとされています。入力をブロックしたスレッドがブロックを解除しないまま終了した場合も、システムによってブロックが解除されます。「入力のブロック」アクションでも、同様の方法で解除できると考えられます。

入力のブロック中に操作ができなくなった場合は、まず Ctrl + Alt + Del を押して入力できる状態に戻してから、Power Automate Desktop でフローを停止してください。

なお、フローを停止するホットキーを設定していても、入力のブロック中は効かない場合があります。