🛠️

Power Automate DesktopでWindowsトースト通知を出す

2021/11/19に公開

無料で手軽に仕事が自動化できる「Power Automate Desktop」(以下PADと略す)を使い始めました。めちゃくちゃ便利ですね。

Power Automate Desktop

PADが便利なところが、PAD自身に機能が存在しないとしても、VBScriptやPythonなどスクリプトを手軽に実行できるので、基本的に何でもできる点です。既存の枠内だけでなんとかしなくても良いので実に合理的です。

Power Automate Desktopでトースト通知を出そう

この記事を執筆している時点で、PADにはWindowsトースト通知を行う機能はありません。しかし、PowerShellスクリプトを実行することで、以下の画面のように任意の通知が可能になります。

Power Automate DesktopでWindowsトースト通知が可能

実現方法

いろいろなやり方がありますが、ここでは、PowerShellを使う方法を紹介します。

「PowerShell スクリプトの実行」を挿入

やり方は簡単です。画面左側にあるアクションから「スクリプト>PowerShell スクリプトの実行」を選択してキャンバスに挿入します。

PowerShell スクリプトを挿入

スクリプトを記述

以下のスクリプトを記述します。PowerShellが分からないとアルファベットと記号の羅列に見えますが気にしなくても大丈夫です。これに関しては何も考えずにコピー&ペーストして大丈夫です。

$title = "通知だよー";
$msg = "喜びが最良の薬";
$t=[Windows.UI.Notifications.ToastNotificationManager,Windows.UI.Notifications,ContentType=WindowsRuntime]::GetTemplateContent([Windows.UI.Notifications.ToastTemplateType, Windows.UI.Notifications, ContentType=WindowsRuntime]::ToastText01);
$t.GetElementsByTagName("text").Item(0).InnerText=$msg;
[Windows.UI.Notifications.ToastNotificationManager]::CreateToastNotifier($title).Show($t);

以下のような画面で「全般」の「実行する PowerShell コード」に上記のスクリプトを記述します。

スクリプトを記述

そして、画面上部の実行ボタンをクリックします。すると、トーストが表示されます。

Power Automate DesktopでWindowsトースト通知が可能

トースト表示をカスタマイズする方法

なお、トースト表示のカスタマイズをしたい場合は、上記スクリプトの1行目と2行目を修正します。

$title = "(ここにタイトル)";
$msg = "(ここにメッセージ)";
... 省略 ...

もしも、変数を埋め込みたい場合には以下のようにします。

$msg = "%ToastMessage%";
$title = "作業通知";
$t=[Windows.UI.Notifications.ToastNotificationManager,Windows.UI.Notifications,ContentType=WindowsRuntime]::GetTemplateContent([Windows.UI.Notifications.ToastTemplateType,Windows.UI.Notifications,ContentType=WindowsRuntime]::ToastText01);
$t.GetElementsByTagName("text").Item(0).InnerText=$msg;
[Windows.UI.Notifications.ToastNotificationManager]::CreateToastNotifier($title).Show($t);

そして、アクションから「変数>変数の設定」でToastMessageに表示したい内容を記述します。

変数を設定

実行するとトーストに、変数の内容に設定したメッセージが表示されます。PowerShellのプログラムを書き換えなくて済むのでこちらの方が安心でしょうか。

実行すると変数ToastMessageの内容がトーストに表示されます。

まとめ

上記のように、PowerShellを記述することによりトースト表示が可能になります。PowerShellをうまく活用して、Power Automate Desktopを便利に活用しましょう。

Discussion