バックグラウンドで実行

フローをバックグラウンドで実行することは限られた操作のみとなるが可能である。当然ながらフォアグラウンドのウィンドウの情報が必要なキーボードのキー送信やマウスによるクリックやOCR等の処理はできないので、そうではないアクションのみをフローに含めることとなる。ファイルやテキストや変数の処理、DOSコマンドなどのスクリプト実行はウィンドウが不要なのでOK。意外にWebオートメーションによるブラウザー上の操作はバックグラウンドで実行が可能である。例えば以下のようなウェブサイトへアクセスしてボタンを押したりデータ抽出したりといった操作はバックグラウンドでできる。

バックグラウンドで実行可能なブラウザー上の操作の例

f:id:yujihb:20211018231921j:plain

1. Webブラウザインスタンスの取得

一番最初のWebブラウザインスタンス取得の際に、起動モードを「新しいインスタンスを起動する」、ウィンドウの状態を「最小化」としておくと、このアクションを含めブラウザーの操作をすべてバックグラウンドで実行できる。

f:id:yujihb:20211018231957j:plain

2. 必要に応じてタブを開いて別のサイトにアクセスする

タブを開いたときには新しいWebブラウザインスタンスNewBrowser等が生成される。この例では、以降のアクションでNewBrowserを指定しhttps://hatenablog.com/が表示されているタブに対して処理を実行する。毎回複数タブを開いたりexample.comにアクセスする必要が特になければ上記ステップ1.で初めから目的のサイトにアクセスすればよい。

f:id:yujihb:20211018233119j:plain

3. 開いたタブ上で別のサイトに移動したりする

f:id:yujihb:20211018234040j:plain

4. ボタンを押すなどする

f:id:yujihb:20211018234249j:plain

なおフロー開始(トリガー)自体のバックグラウンド実行は現在の無料版の標準ではおそらく不可と思われる。Power Automate Desktopのコンソールを開いてフローの実行ボタンをクリックする最初の部分はマウスなりでマニュアル操作が必要である。その部分までも自動化したい場合には、Windowsのタスクスケジューラーと有志による非公式のツールを利用して実現する方法が存在するのだが、公式には有料版で可能であるようなので有料版を使用するとよいだろう。