Web系開発メモ

Java, C#, HTML, CSS, JavaScript のことなどを書いてます。

C# 常駐アプリの開発(Windowsタスクトレイ常駐型 .NET6.0)

C#でタスクトレイに常駐するアプリを作る方法を書いていきます。

プロジェクトの作成

Visual Studio を起動して、以下のプロジェクトを作成します。

WPFアプリでも大丈夫ですが、Windowsフォームの機能を使うことになります。タスクトレイで常駐するだけなら Windowsフォームが楽だと思います。

プロジェクト名は任意で、今回は「TaskTrayApp」にしました。

アイコンの追加

Visual Studio の「新しい項目の追加」でアイコン Icon.ico を追加します。

追加したら出力ディレクトリにコピーするようにします。

フォームの削除

今回は Form1 を使わないので削除しました。

プログラムの作成

テンプレートのプログラムを編集して保存します。

Program.cs

namespace TaskTrayApp {
    internal static class Program {
        [STAThread]
        static void Main() {
            ApplicationConfiguration.Initialize();
            CreateNotifyIcon();
            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;
        }
    }
}

プログラムの実行

プログラムを実行すると、タスクトレイにアイコンが表示されます。今のプログラムだと処理は何もなく、終了させることしかできません。

プログラムの終了

タスクトレイのアイコンを右クリックすると終了させることができます。