起動時に読み込まれ、2時間ごとにバルーンテキストをポップするシステムトレイアプリケーションを作成しようとしています。そのような例があれば、それは素晴らしいことです。
使いたいです。
WPF、タイマー、デリゲート、イベント
これらで十分かどうか、またはもっと何かが必要かどうかはわかりません。
前もって感謝します。
起動時に読み込まれ、2時間ごとにバルーンテキストをポップするシステムトレイアプリケーションを作成しようとしています。そのような例があれば、それは素晴らしいことです。
使いたいです。
WPF、タイマー、デリゲート、イベント
これらで十分かどうか、またはもっと何かが必要かどうかはわかりません。
前もって感謝します。
まず最初に、システムの起動時にアプリケーションを起動するために必要なものがあります。チェックボックスがあり、このチェックボックスがアクティブになっている場合は、Windowsの起動時にアプリケーションを起動したいとします。
RegistryKey rkApp = Registry.CurrentUser.OpenSubKey("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run", true);
private void checkBox_autoStart_Checked(object sender, RoutedEventArgs e)
{
rkApp.SetValue("Your Application Name Here",Assembly.GetExecutingAssembly().Location);
}
そして、あなたが次のことを行うことの非アクティブ化について:
private void checkBox_autoStart_Unchecked(object sender, RoutedEventArgs e)
{
rkApp.DeleteValue("Your Application Name Here", false);
}
ps:アプリケーション名は、タスクマネージャーに書き留めた方法で表示されます
また、通知アイコンの使用については、実際にはWPFは既製のアイコンをサポートしていないため、Windowsフォーム通知アイコンを使用するか、codeproject.comからの別の回答に記載されているアイコンを使用します。
Windowsフォームに既に存在するものを使用する場合は、プロジェクトにSystem.Windows.Formsへの参照を追加する必要があります。
私はあなたがそれらで大丈夫だと思います。必要なのは、実際にはNotifyIconとタイマーだけです。WPFを使用していなかった(「クラシック」ウィンドウデザイナーを使用した)ことを除いて、この方法で同様のことを達成しました。
起動時にアプリを起動させる最も簡単な方法は、おそらく[スタート]メニューの[起動]フォルダーにアプリを配置することです。実際には、レジストリを使用する必要はありません。
Windowsサービスはバックグラウンドで実行するのに最適な場合がありますが、サービスからGUIにアクセスするのは難しい場合があります(簡単ではないと思います)。
トレイ通知を実行するWPFデスクトップアプリについては、デモとソースコードを含むこのプロジェクトを参照してください:http://www.codeproject.com/KB/WPF/WPF_xaml_taskbar_window.aspx
2時間ごとに通知を受け取るには、DispatcherTimerを使用できます: http ://social.msdn.microsoft.com/Forums/en/wpf/thread/aaffea95-e735-492d-bd8a-2fdf7099a936