!!! デスクトップ通知(トースト通知) {{category Windows PowerShell,nolink}} PowerShell で、Windows のデスクトップ通知・トースト通知をする。 WindowsRuntime を使用するため、Windows PowerShell が対象。 !!!トースト通知 !!基本 $headline = "headline text" $message = "message text" $xml = @" $($headline) $($message) "@ $doc = [Windows.Data.Xml.Dom.XmlDocument, Windows.Data.Xml.Dom.XmlDocument, ContentType = WindowsRuntime]::New() $doc.loadXml($xml) $appid = '{1AC14E77-02E7-4E5D-B744-2EB1AE5198B7}\WindowsPowerShell\v1.0\powershell.exe' [Windows.UI.Notifications.ToastNotificationManager, Windows.UI.Notifications, ContentType = WindowsRuntime]::CreateToastNotifier($appid).Show($doc) !!テキスト トーストに表示するテキストを、text 要素を最大3つのテキストが指定でき、合わせて6行分が表示される。 1つ指定した場合は、太字で最大6行。2つまたは3つを指定した場合は、1つ目が太字で最大2行、2つ目と3つ目は普通(太字でない)となる。 headline text message text second message text !改行 改行する場合は「`n」で改行する(改行された文字列はそのまま改行されて表示される)。 second`nmessage`ntext !表示行数 表示される最大行数を、text 要素の hint-maxLines 属性で指定する。 実際に有効なのは、1つ目で、1行に制限するくらい。 headline text !!ロゴ メッセージの左側に表示されるアプリロゴを、image 要素の placement 属性で appLogoOverride を指定する(この配置の指定値は Win8 の実装に由来するらしい)。 サイズは、100% スケーリングで 48 x 48 ピクセル。 message text !円形にクリップする アプリロゴを円形にクリップする場合は、hint-crop 属性で circle を指定する。 !!イメージ トーストに表示する画像を、image 要素で、src 属性でファイルパスを指定する。複数可能だがその分長くなる。 message text !ヒーローイメージ トーストの上に画像が表示されるヒーローイメージを、image 要素の placement 属性で hero を指定する。 サイズは、100% スケーリングで 364 x 180 ピクセル。 !!通知音 トーストを表示した際の通知音を audio 要素で指定(変更)できる。 利用可能な通知音は https://learn.microsoft.com/en-us/uwp/schemas/tiles/toastschema/element-audio#attributes !ループ loop 属性で true を指定する。トーストを消すまで通知音が鳴り続ける。 !サイレント silent 属性で true を指定する。トースト通知が表示される際に通知音がならない。 !!表示時間 !長く表示される通知 トーストが表示される時間を、toast 要素の duration 属性で long または short を指定する。 指定なし または short で約5秒、long で約25秒間表示される。 !!!アクション !!トーストをクリック 表示されたトーストをクリックしたときにアクションする(例:Google のサイトを開く)。 toast 要素で、activationType 属性に protocol 、launch 属性で開く URL やファイルパスを指定する(関連付けで開く)。 Click to open Google !!アクションボタン トースト下部にボタンを表示して、ボタンが押された時にアクションをする(例:Google のサイトを開く)。 actions 要素内に、action 要素でボタンを作成する。content 属性がキャプション、imageUri 属性でボタンに画像を表示できる。 activationType 属性に protocol を指定して、arguments 属性で開く URL やファイルパスを指定する(関連付けで開く)。 !!!プログレスバー !!!リマインダー !!!アラーム !!!着信 !!!参考 * Toast notification examples for PowerShell ** https://github.com/GitHub30/toast-notification-examples * 【PowerShell】デスクトップ通知のスニペット【トースト通知】 #初心者 - Qiita ** https://qiita.com/relu/items/b7121487a1d5756dfcf9 * トースト スキーマ - Windows UWP applications | Microsoft Learn ** https://learn.microsoft.com/ja-jp/uwp/schemas/tiles/toastschema/schema-root