.NET/コンソールプログラムからトースト通知をするサンプル
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
]
開始行:
#navi(../)
* コンソールプログラムからトースト通知をするサンプル [#da...
コンソールプログラムでトースト通知を実現するサンプルコー...
トースト通知を依頼し(ToastNotifier.Show)、作成したコンソ...
トースト表示がされる(終わる)まで待たないといけないようで...
もちろん、Sleepなどを入れれば表示されますが…
''本資料では、トースト通知が表示されイベントが戻ってきて...
イベントはトースト通知を閉じたり、トースト通知表示後、通...
#contents
* GitHubに公開 [#va22be52]
本コンソールプログラムのプロジェクトは以下のURL(GitHub)に...
https://github.com/oss-sakura/Toast4U~
ソースコードは以下の参考記事サイトに公開されているコード...
#htmlinsert(windev-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 calle...
https://stackoverflow.com/questions/66360108/c-sharp-uwp-...
* コンソールプログラムでトースト通知プロジェクトを作る手...
コンソールプログラムからトースト通知をするプロジェクトを...
** プロジェクトの作成 [#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 を選択します...
%ProgramFiles(x86)%\Reference Assemblies\Microsoft\Frame...
ほとんどの方はCドライブにWindowsをインストールしていると...
C:\Program Files (x86)\Reference Assemblies\Microsoft\Fr...
+ System.Runtime.dll を選択し追加ボタンをクリックします。
#ref(14.png)
#br
+ これで参照は終わりです。~
OKボタンをクリックします。
#ref(15.png)
以上の操作でプロジェクトの作成は完了です。
* コンソールアプリケーションによるトースト通知サンプルコ...
以下のサンプルコードを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 ...
return;
}
Toaster toaster = new Toaster();
Task.Run(() => toaster.SendToastNotification...
while (toaster.Finished == false)
{
Thread.Sleep(10);
}
}
static void Usage()
{
string command = Path.GetFileName(Environmen...
Console.WriteLine("Usage: {0} title message ...
Console.WriteLine(" e.g.: {0} INFOMATION \"...
Console.WriteLine(" e.g.: {0} INFOMATION \"...
}
}
class Toaster
{
private ToastNotification _toast;
public bool Finished { get; private set; } = fal...
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 templat...
,args[1]);
break;
case 3:
// Title, Message and Image XML
Toast = String.Format(
"<toast><visual><binding templat...
, args[1], args[2]);
break;
default:
// unknown case
Toast = "<toast><visual><binding tem...
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...
}
private void ToastNotificationComplete(ToastNoti...
{
Finished = true;
}
}
}
* Toast4Uの使い方 [#s24e765f]
上記のプロジェクトをGitHubからダウンロードするか、作成し...
ビルドすると 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\...
実際にタイトル、メッセージと画像を表示するコマンド例を以...
** タイトル、メッセージ表示 [#sce86585]
-コマンド例
Toast4U.exe トースト通知 こんにちは世界
#ref(21.png)
** タイトル、メッセージ、イメージ表示 [#l22ea790]
適当なイメージファイルを準備してください。~
-コマンド例
Toast4U.exe HODL "Bitcoin To The Moon" D:\BTC.png
#ref(22.png)
* その他 [#fe10d5de]
トースト通知に使用したXMLですが、ToastTemplateType.ToastT...
- ToastTemplateType.ToastText01
<toast><visual><binding template="ToastText01"><text id=...
-ToastTemplateType.ToastImageAndText01
<toast><visual><binding template="ToastImageAndText01"><...
以上、コンソールアプリケーションからトースト通知を送信し...
#htmlinsert(windev-btm.html)
終了行:
#navi(../)
* コンソールプログラムからトースト通知をするサンプル [#da...
コンソールプログラムでトースト通知を実現するサンプルコー...
トースト通知を依頼し(ToastNotifier.Show)、作成したコンソ...
トースト表示がされる(終わる)まで待たないといけないようで...
もちろん、Sleepなどを入れれば表示されますが…
''本資料では、トースト通知が表示されイベントが戻ってきて...
イベントはトースト通知を閉じたり、トースト通知表示後、通...
#contents
* GitHubに公開 [#va22be52]
本コンソールプログラムのプロジェクトは以下のURL(GitHub)に...
https://github.com/oss-sakura/Toast4U~
ソースコードは以下の参考記事サイトに公開されているコード...
#htmlinsert(windev-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 calle...
https://stackoverflow.com/questions/66360108/c-sharp-uwp-...
* コンソールプログラムでトースト通知プロジェクトを作る手...
コンソールプログラムからトースト通知をするプロジェクトを...
** プロジェクトの作成 [#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 を選択します...
%ProgramFiles(x86)%\Reference Assemblies\Microsoft\Frame...
ほとんどの方はCドライブにWindowsをインストールしていると...
C:\Program Files (x86)\Reference Assemblies\Microsoft\Fr...
+ System.Runtime.dll を選択し追加ボタンをクリックします。
#ref(14.png)
#br
+ これで参照は終わりです。~
OKボタンをクリックします。
#ref(15.png)
以上の操作でプロジェクトの作成は完了です。
* コンソールアプリケーションによるトースト通知サンプルコ...
以下のサンプルコードを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 ...
return;
}
Toaster toaster = new Toaster();
Task.Run(() => toaster.SendToastNotification...
while (toaster.Finished == false)
{
Thread.Sleep(10);
}
}
static void Usage()
{
string command = Path.GetFileName(Environmen...
Console.WriteLine("Usage: {0} title message ...
Console.WriteLine(" e.g.: {0} INFOMATION \"...
Console.WriteLine(" e.g.: {0} INFOMATION \"...
}
}
class Toaster
{
private ToastNotification _toast;
public bool Finished { get; private set; } = fal...
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 templat...
,args[1]);
break;
case 3:
// Title, Message and Image XML
Toast = String.Format(
"<toast><visual><binding templat...
, args[1], args[2]);
break;
default:
// unknown case
Toast = "<toast><visual><binding tem...
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...
}
private void ToastNotificationComplete(ToastNoti...
{
Finished = true;
}
}
}
* Toast4Uの使い方 [#s24e765f]
上記のプロジェクトをGitHubからダウンロードするか、作成し...
ビルドすると 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\...
実際にタイトル、メッセージと画像を表示するコマンド例を以...
** タイトル、メッセージ表示 [#sce86585]
-コマンド例
Toast4U.exe トースト通知 こんにちは世界
#ref(21.png)
** タイトル、メッセージ、イメージ表示 [#l22ea790]
適当なイメージファイルを準備してください。~
-コマンド例
Toast4U.exe HODL "Bitcoin To The Moon" D:\BTC.png
#ref(22.png)
* その他 [#fe10d5de]
トースト通知に使用したXMLですが、ToastTemplateType.ToastT...
- ToastTemplateType.ToastText01
<toast><visual><binding template="ToastText01"><text id=...
-ToastTemplateType.ToastImageAndText01
<toast><visual><binding template="ToastImageAndText01"><...
以上、コンソールアプリケーションからトースト通知を送信し...
#htmlinsert(windev-btm.html)
ページ名: