C#でタスクトレイに常駐するアプリを作成して、一定の時間が経過したら処理を実行する方法を書いていきます。
常駐アプリの開発方法
Windowsのタスクトレイ常駐型アプリを作成する方法は、以下の記事にまとめています。
今回はリンク先のソースを編集して、処理を実行するようにしていきます。
プログラムの改修
常駐してから1時間毎にメッセージを表示するようにタイマーを設定します。
Program.cs
namespace TaskTrayApp { internal static class Program { [STAThread] static void Main() { ApplicationConfiguration.Initialize(); CreateNotifyIcon(); StartTimer(); Application.Run(); } private static void CreateNotifyIcon() { // 常駐アプリ(タスクトレイのアイコン)を作成 var icon = new NotifyIcon(); icon.Icon = new Icon("Icon.ico"); icon.ContextMenuStrip = ContextMenu(); icon.Text = "通知アプリ"; icon.Visible = true; } private static ContextMenuStrip ContextMenu() { // アイコンを右クリックしたときのメニューを返却 var menu = new ContextMenuStrip(); menu.Items.Add("終了", null, (s, e) => { Application.Exit(); }); return menu; } private static void StartTimer() { // 1時間毎に処理を実行するタイマーを用意 var timer = new System.Timers.Timer( 1000.0 * 60 * 60 // 1000ミリ秒(1秒) * 60 * 60 ); // タイマー処理を設定 timer.Elapsed += (s, e) => { MessageBox.Show( "1時間が経過しました。", "時間経過通知", MessageBoxButtons.OK, MessageBoxIcon.Information, MessageBoxDefaultButton.Button1, MessageBoxOptions.DefaultDesktopOnly ); }; // タイマーを有効化 timer.Enabled = true; } } }
プログラムの実行
プログラムを実行すると、1時間毎に以下のメッセージが最前面に表示されるようになります。