.NET/コンソールプログラムからトースト通知をするサンプル
の編集
Top
/
.NET
/
コンソールプログラムからトースト通知をするサンプル
[
トップ
] [
編集
|
差分
|
履歴
|
添付
|
リロード
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
]
-- 雛形とするページ --
.NET
.NET/.NETでpingを実現する・System.Net.NetworkInformation.Ping
.NET/ARPテーブルを取得し表示するサンプル・GetIpNetTable
.NET/CPUコア毎の使用率を取得する
.NET/CPU使用率を取得する
.NET/DateとDateTimeの違い
.NET/HttpClientを使って指定したURLのページを取得する
.NET/IPv4からMACアドレス取得する・SendARP
.NET/IPアドレスからホスト名を取得するサンプルコード
.NET/ListのStringをカンマ区切りにする方法
.NET/Listを配列に配列をListに変換する
.NET/NET6.0でSQLiteを使ってみた Microsoft.Data.Sqlite
.NET/ODBCを使用してデータベースに接続しSQLを実行するサンプル
.NET/String.Splitで空要素を残す、空要素を削除するオプションについて
.NET/StringBuilderをバイト配列に変換する
.NET/Stringの配列をCSVにする方法
.NET/UNIX時間への変換・DateTimeOffset
.NET/UNIX時間をDateTimeOffset, DateTimeにする
.NET/Web APIからJSONを取得し値を表示する・DataContractJsonSerializer
.NET/WMIを使って物理メモリ・仮想メモリの使用量等を取得する
.NET/アルファベットを大文字、小文字に変換する
.NET/インストールされているODBCドライバ一覧を取得するサンプル
.NET/コンソールプログラムからトースト通知をするサンプル
.NET/サスペンド前・復帰の時に処理を行いたい
.NET/スペースのみの文字列、空の文字列、サイズ0の文字列を判定する
.NET/スリープの抑止、モニター電源オフの抑止のサンプルコード
.NET/ターゲットにしている.NETを確認する操作手順
.NET/テキストファイルの読込・ReadAllText,ReadAllLines
.NET/テキストファイルの読込・StreamReader
.NET/テンポラリファイルの作成・ランダムな文字列の作成を作成する
.NET/テンポラリファイル名を取得する・GetRandomFileName
.NET/ディレクトリの有無を確認する
.NET/ネットワークカードの各種情報を取得するサンプルコード
.NET/バイト配列にファイルの内容をすべて読み込む
.NET/バイナリーファイルの作成・リード・ライト
.NET/ファイルなの?ディレクトリなの?の判別
.NET/ファイルの有無を確認する
.NET/ファイル一覧を取得する・GetFiles,EnumerateFiles
.NET/プログラムに渡された引数を取得する方法
.NET/ユーザーが無操作の状態を取得する・GetLastInputInfo
.NET/三項演算子のサンプルコード
.NET/四捨五入をするときはMidpointRounding.AwayFromZeroにすること
.NET/指定した時間間隔でイベントを発行する・Timer
.NET/数値を指定した桁数分ゼロで埋めたい・ToString
.NET/文字列(String)を左右逆転し文字列(String)で返却する方法
.NET/文字列をバイト配列に変換・バイト配列を文字列に変換
.NET/文字列を区切り文字で分割する方法・Split
.NET/文字列宣言の先頭の@について
.NET/文字列数値を指定した桁数分ゼロで埋めたい・PadLeft
.NET/文字列日付をDateTimeに変換する
.NET/文字列配列orList配列に指定した文字列が存在するかを確認する方法
.NET/時間(日数+時間)が格納できるTimeSpan
.NET/月末の日を取得する方法・DaysInMonth
.NET/現在の日時を取得する
.NET/符号付バイトsbyte,符号なしbyteをintegerに変換する
.NET/管理者として実行されているかどうか確認するサンプルコード
.NET/連想配列(ハッシュ)のキーと値を取得する
.NET/連想配列(ハッシュ)を使ってみる・Dictionary
.NET/閏年かを調べる方法
AutoTicketLinkName
FrontPage
InterWikiName
MenuBar
OSS
OSS/XYM日本円価格(シンボル日本円価格 (XYMJPYPrice)
OSS/ビットコイン日本円価格(ビットコイン日本円価格 (BitcoinJPYPrice)
RecentDeleted
VS
VS/Debug.Writeをイミディエイトウィンドウに出力する方法
VS/Visual Studio 2022に Spy++をインストールする手順
VS/VS2022の配色テーマの変更操作
VS/XAML編集に使うツールボックスの再表示する操作手順
VS/インデントなどコードを整形するショートカットの紹介
VS/コメントにするショートカットキー
VS/ショートカットキーで大文字・小文字に変換する
VS/ビルド中に中断したい場合の操作手順
WPF
WPF/DataGridを使ってみる
WPF/起動してもMainWindowを表示したくない場合
お約束
プライバシーポリシー
最初にお読みください
#navi(../) * コンソールプログラムからトースト通知をするサンプル [#da0f9bd0] コンソールプログラムでトースト通知を実現するサンプルコードがネット上にありましたが~ トースト通知を依頼し(ToastNotifier.Show)、作成したコンソールプログラムが終了すると何も表示されません。~ トースト表示がされる(終わる)まで待たないといけないようです。~ もちろん、Sleepなどを入れれば表示されますが… ''本資料では、トースト通知が表示されイベントが戻ってきてコンソールプログラムが終了するようになっています。~ イベントはトースト通知を閉じたり、トースト通知表示後、通知が隠れるとイベントが発生します。'' #contents * GitHubに公開 [#va22be52] 本コンソールプログラムのプロジェクトは以下のURL(GitHub)に公開してあります。~ https://github.com/oss-sakura/Toast4U~ ソースコードは以下の参考記事サイトに公開されているコードを流用させた頂きました。(感謝) #htmlinsert(windev_ads_top.html) * 動作確認&開発環境 [#r260a506] - Windows 10 ver. 21H1 - Visual Studio 2019 - .NET Framework 4.7.2 * 参考記事 [#j39dafe4] -Windows10の通知テンプレート(ToastTemplateType)XMLを確認してみた~ https://decodelog.com/net-toast-tamplate/ -C# UWP toast notification event handlers not being called in Release mode. Works in Debug mode~ https://stackoverflow.com/questions/66360108/c-sharp-uwp-toast-notification-event-handlers-not-being-called-in-release-mode * コンソールプログラムでトースト通知プロジェクトを作る手順 [#y71c4cc6] コンソールプログラムからトースト通知をするプロジェクトを以下の手順で作成します。 ** プロジェクトの作成 [#o588c46c] + Visual Studio 2019 の起動します。 + 新しいプロジェクトの作成 をクリックします。 #ref(01.png) #br + コンソールアプリ(.NET Framework)を選択し「次へ」ボタンをクリックします。 #ref(02.png) #br + プロジェクト名に Toast4U と入力します。 + 場所は皆さんの環境にあった場所を指定してください。(もちろんデフォルトでもかまいません。) + 入力が完了したら「作成」ボタンをクリックします。 #ref(03.png) #br + プロジェクト画面が表示されます。 ** WinRTを参照できるようにする [#oa44a2ca] + ソリューションエクスプローラーにある「Toast4U」プロジェクトを右クリックします。 + 「プロジェクトのアンロード」をクリックします。 #ref(04.png) #br + Toast4U.csproj ファイルが表示されます。 #ref(05.png) #br + Toast4U.csproj に以下の文字列を追記します。 <PropertyGroup> <TargetPlatformVersion>8.0</TargetPlatformVersion> </PropertyGroup> 35行目~37行目に追記しました。 #ref(06.png) #br + 追記が終わったら、Ctrl + S またはフロッピーディスクのアイコンをクリックし保存します。 #br + ソリューションエクスプローラーにある「Toast4U」プロジェクトを右クリックします。 + 「プロジェクトの再読み込み」をクリックします。 #ref(07.png) #br ** 必要な参照を追加 [#rf28995c] + ソリューションエクスプローラーに表示されている「参照」を右クリックします。 + 「参照の追加」をクリックします。 #ref(11.png) #br + Window をクリックします。~ もし、Windowが表示されていない場合は、プロジェクトのアンロード、プロジェクトの再読み込みをしてみてください。 + Windows.Foundation, Windows.Data, Windows.UI の3つをクリックします。 #ref(12.png) #br + System.Runtime.dll 以下の手順で参照に含めます。 + 参照ボタンをクリックします。 #ref(13.png) #br + 以下のフォルダににある System.Runtime.dll を選択します。(.NET Framework 4.7.2使用) %ProgramFiles(x86)%\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.7.2\Facades ほとんどの方はCドライブにWindowsをインストールしていると思いますので下のパスになります。 C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.7.2\Facades + System.Runtime.dll を選択し追加ボタンをクリックします。 #ref(14.png) #br + これで参照は終わりです。~ OKボタンをクリックします。 #ref(15.png) 以上の操作でプロジェクトの作成は完了です。 * コンソールアプリケーションによるトースト通知サンプルコード [#zdc8ef35] 以下のサンプルコードをProgram.csに適用してください。 本コンソールプログラムのプロジェクトは以下のURL(GitHub)に公開してあります。~ https://github.com/oss-sakura/Toast4U~ using System; using System.IO; using System.Threading; using System.Threading.Tasks; using Windows.Data.Xml.Dom; using Windows.UI.Notifications; namespace Toast4U { class Program { static void Main(string[] args) { if (!(args.Length == 2 || args.Length == 3)) { Usage(); return; } if (args.Length == 3 && !(File.Exists(args[2]))) { Console.Error.WriteLine("{0} image file not found!", args[2]); return; } Toaster toaster = new Toaster(); Task.Run(() => toaster.SendToastNotification(args)); while (toaster.Finished == false) { Thread.Sleep(10); } } static void Usage() { string command = Path.GetFileName(Environment.GetCommandLineArgs()[0]); Console.WriteLine("Usage: {0} title message [image]", command); Console.WriteLine(" e.g.: {0} INFOMATION \"HELLO WORLD\"", command); Console.WriteLine(" e.g.: {0} INFOMATION \"HELLO WORLD\" c:\\path\\to\\image.png", command); } } class Toaster { private ToastNotification _toast; public bool Finished { get; private set; } = false; public void SendToastNotification(string[] args) { string Toast = ""; string title = args[0]; switch (args.Length) { case 2: // Title and Message XML Toast = String.Format( "<toast><visual><binding template=\"ToastText01\"><text id=\"1\">{0}</text></binding></visual></toast>" ,args[1]); break; case 3: // Title, Message and Image XML Toast = String.Format( "<toast><visual><binding template=\"ToastImageAndText01\"><image id=\"1\" src=\"{1}\"/><text id=\"1\">{0}</text></binding></visual></toast>" , args[1], args[2]); break; default: // unknown case Toast = "<toast><visual><binding template=\"ToastText01\"><text id=\"1\">unknown</text></binding></visual></toast>"; break; } XmlDocument toastTemplate = new XmlDocument(); toastTemplate.LoadXml(Toast); // Create the toast and attach event handlers. _toast = new ToastNotification(toastTemplate); _toast.Dismissed += ToastNotificationComplete; _toast.Activated += ToastNotificationComplete; _toast.Failed += ToastNotificationComplete; ToastNotificationManager.CreateToastNotifier(title).Show(_toast); } private void ToastNotificationComplete(ToastNotification sender, object args) { Finished = true; } } } * Toast4Uの使い方 [#s24e765f] 上記のプロジェクトをGitHubからダウンロードするか、作成したプロジェクトをビルドしてください。~ ビルドすると Toast4U.exe が作成さくせされるので、コマンドプロンプトを起動しToast4U.exeのあるディレクトリに移動し、以下の操作を行ってください。 引数なしで Toast4U.exe を起動すると使用方法が出力されます。 D:\Toast4U\Toast4U\bin\Release>Toast4U.exe Usage: Toast4U.exe title message [image] e.g.: Toast4U.exe INFOMATION "HELLO WORLD" e.g.: Toast4U.exe INFOMATION "HELLO WORLD" c:\path\to\image.png 実際にタイトル、メッセージと画像を表示するコマンド例を以下に記します。 ** タイトル、メッセージ表示 [#sce86585] -コマンド例 Toast4U.exe トースト通知 こんにちは世界 #ref(21.png) ** タイトル、メッセージ、イメージ表示 [#l22ea790] 適当なイメージファイルを準備してください。~ -コマンド例 Toast4U.exe HODL "Bitcoin To The Moon" D:\BTC.png #ref(22.png) * その他 [#fe10d5de] トースト通知に使用したXMLですが、ToastTemplateType.ToastText01, ToastTemplateType.ToastImageAndText01を参考にしました。 - ToastTemplateType.ToastText01 <toast><visual><binding template="ToastText01"><text id="1"></text></binding></visual></toast> -ToastTemplateType.ToastImageAndText01 <toast><visual><binding template="ToastImageAndText01"><image id="1" src=""/><text id="1"></text></binding></visual></toast> 以上、コンソールアプリケーションからトースト通知を送信し完了するまで待つサンプルコードでした。 #htmlinsert(windev_ads_btm.html)
タイムスタンプを変更しない
#navi(../) * コンソールプログラムからトースト通知をするサンプル [#da0f9bd0] コンソールプログラムでトースト通知を実現するサンプルコードがネット上にありましたが~ トースト通知を依頼し(ToastNotifier.Show)、作成したコンソールプログラムが終了すると何も表示されません。~ トースト表示がされる(終わる)まで待たないといけないようです。~ もちろん、Sleepなどを入れれば表示されますが… ''本資料では、トースト通知が表示されイベントが戻ってきてコンソールプログラムが終了するようになっています。~ イベントはトースト通知を閉じたり、トースト通知表示後、通知が隠れるとイベントが発生します。'' #contents * GitHubに公開 [#va22be52] 本コンソールプログラムのプロジェクトは以下のURL(GitHub)に公開してあります。~ https://github.com/oss-sakura/Toast4U~ ソースコードは以下の参考記事サイトに公開されているコードを流用させた頂きました。(感謝) #htmlinsert(windev_ads_top.html) * 動作確認&開発環境 [#r260a506] - Windows 10 ver. 21H1 - Visual Studio 2019 - .NET Framework 4.7.2 * 参考記事 [#j39dafe4] -Windows10の通知テンプレート(ToastTemplateType)XMLを確認してみた~ https://decodelog.com/net-toast-tamplate/ -C# UWP toast notification event handlers not being called in Release mode. Works in Debug mode~ https://stackoverflow.com/questions/66360108/c-sharp-uwp-toast-notification-event-handlers-not-being-called-in-release-mode * コンソールプログラムでトースト通知プロジェクトを作る手順 [#y71c4cc6] コンソールプログラムからトースト通知をするプロジェクトを以下の手順で作成します。 ** プロジェクトの作成 [#o588c46c] + Visual Studio 2019 の起動します。 + 新しいプロジェクトの作成 をクリックします。 #ref(01.png) #br + コンソールアプリ(.NET Framework)を選択し「次へ」ボタンをクリックします。 #ref(02.png) #br + プロジェクト名に Toast4U と入力します。 + 場所は皆さんの環境にあった場所を指定してください。(もちろんデフォルトでもかまいません。) + 入力が完了したら「作成」ボタンをクリックします。 #ref(03.png) #br + プロジェクト画面が表示されます。 ** WinRTを参照できるようにする [#oa44a2ca] + ソリューションエクスプローラーにある「Toast4U」プロジェクトを右クリックします。 + 「プロジェクトのアンロード」をクリックします。 #ref(04.png) #br + Toast4U.csproj ファイルが表示されます。 #ref(05.png) #br + Toast4U.csproj に以下の文字列を追記します。 <PropertyGroup> <TargetPlatformVersion>8.0</TargetPlatformVersion> </PropertyGroup> 35行目~37行目に追記しました。 #ref(06.png) #br + 追記が終わったら、Ctrl + S またはフロッピーディスクのアイコンをクリックし保存します。 #br + ソリューションエクスプローラーにある「Toast4U」プロジェクトを右クリックします。 + 「プロジェクトの再読み込み」をクリックします。 #ref(07.png) #br ** 必要な参照を追加 [#rf28995c] + ソリューションエクスプローラーに表示されている「参照」を右クリックします。 + 「参照の追加」をクリックします。 #ref(11.png) #br + Window をクリックします。~ もし、Windowが表示されていない場合は、プロジェクトのアンロード、プロジェクトの再読み込みをしてみてください。 + Windows.Foundation, Windows.Data, Windows.UI の3つをクリックします。 #ref(12.png) #br + System.Runtime.dll 以下の手順で参照に含めます。 + 参照ボタンをクリックします。 #ref(13.png) #br + 以下のフォルダににある System.Runtime.dll を選択します。(.NET Framework 4.7.2使用) %ProgramFiles(x86)%\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.7.2\Facades ほとんどの方はCドライブにWindowsをインストールしていると思いますので下のパスになります。 C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.7.2\Facades + System.Runtime.dll を選択し追加ボタンをクリックします。 #ref(14.png) #br + これで参照は終わりです。~ OKボタンをクリックします。 #ref(15.png) 以上の操作でプロジェクトの作成は完了です。 * コンソールアプリケーションによるトースト通知サンプルコード [#zdc8ef35] 以下のサンプルコードをProgram.csに適用してください。 本コンソールプログラムのプロジェクトは以下のURL(GitHub)に公開してあります。~ https://github.com/oss-sakura/Toast4U~ using System; using System.IO; using System.Threading; using System.Threading.Tasks; using Windows.Data.Xml.Dom; using Windows.UI.Notifications; namespace Toast4U { class Program { static void Main(string[] args) { if (!(args.Length == 2 || args.Length == 3)) { Usage(); return; } if (args.Length == 3 && !(File.Exists(args[2]))) { Console.Error.WriteLine("{0} image file not found!", args[2]); return; } Toaster toaster = new Toaster(); Task.Run(() => toaster.SendToastNotification(args)); while (toaster.Finished == false) { Thread.Sleep(10); } } static void Usage() { string command = Path.GetFileName(Environment.GetCommandLineArgs()[0]); Console.WriteLine("Usage: {0} title message [image]", command); Console.WriteLine(" e.g.: {0} INFOMATION \"HELLO WORLD\"", command); Console.WriteLine(" e.g.: {0} INFOMATION \"HELLO WORLD\" c:\\path\\to\\image.png", command); } } class Toaster { private ToastNotification _toast; public bool Finished { get; private set; } = false; public void SendToastNotification(string[] args) { string Toast = ""; string title = args[0]; switch (args.Length) { case 2: // Title and Message XML Toast = String.Format( "<toast><visual><binding template=\"ToastText01\"><text id=\"1\">{0}</text></binding></visual></toast>" ,args[1]); break; case 3: // Title, Message and Image XML Toast = String.Format( "<toast><visual><binding template=\"ToastImageAndText01\"><image id=\"1\" src=\"{1}\"/><text id=\"1\">{0}</text></binding></visual></toast>" , args[1], args[2]); break; default: // unknown case Toast = "<toast><visual><binding template=\"ToastText01\"><text id=\"1\">unknown</text></binding></visual></toast>"; break; } XmlDocument toastTemplate = new XmlDocument(); toastTemplate.LoadXml(Toast); // Create the toast and attach event handlers. _toast = new ToastNotification(toastTemplate); _toast.Dismissed += ToastNotificationComplete; _toast.Activated += ToastNotificationComplete; _toast.Failed += ToastNotificationComplete; ToastNotificationManager.CreateToastNotifier(title).Show(_toast); } private void ToastNotificationComplete(ToastNotification sender, object args) { Finished = true; } } } * Toast4Uの使い方 [#s24e765f] 上記のプロジェクトをGitHubからダウンロードするか、作成したプロジェクトをビルドしてください。~ ビルドすると Toast4U.exe が作成さくせされるので、コマンドプロンプトを起動しToast4U.exeのあるディレクトリに移動し、以下の操作を行ってください。 引数なしで Toast4U.exe を起動すると使用方法が出力されます。 D:\Toast4U\Toast4U\bin\Release>Toast4U.exe Usage: Toast4U.exe title message [image] e.g.: Toast4U.exe INFOMATION "HELLO WORLD" e.g.: Toast4U.exe INFOMATION "HELLO WORLD" c:\path\to\image.png 実際にタイトル、メッセージと画像を表示するコマンド例を以下に記します。 ** タイトル、メッセージ表示 [#sce86585] -コマンド例 Toast4U.exe トースト通知 こんにちは世界 #ref(21.png) ** タイトル、メッセージ、イメージ表示 [#l22ea790] 適当なイメージファイルを準備してください。~ -コマンド例 Toast4U.exe HODL "Bitcoin To The Moon" D:\BTC.png #ref(22.png) * その他 [#fe10d5de] トースト通知に使用したXMLですが、ToastTemplateType.ToastText01, ToastTemplateType.ToastImageAndText01を参考にしました。 - ToastTemplateType.ToastText01 <toast><visual><binding template="ToastText01"><text id="1"></text></binding></visual></toast> -ToastTemplateType.ToastImageAndText01 <toast><visual><binding template="ToastImageAndText01"><image id="1" src=""/><text id="1"></text></binding></visual></toast> 以上、コンソールアプリケーションからトースト通知を送信し完了するまで待つサンプルコードでした。 #htmlinsert(windev_ads_btm.html)
テキスト整形のルールを表示する
添付ファイル:
22.png
266件
[
詳細
]
21.png
259件
[
詳細
]
15.png
271件
[
詳細
]
14.png
244件
[
詳細
]
13.png
253件
[
詳細
]
12.png
263件
[
詳細
]
11.png
235件
[
詳細
]
07.png
243件
[
詳細
]
06.png
262件
[
詳細
]
05.png
253件
[
詳細
]
04.png
250件
[
詳細
]
03.png
256件
[
詳細
]
02.png
272件
[
詳細
]
01.png
261件
[
詳細
]