【C#】タスクトレイに常駐するアプリの作り方(.NET5もOK)
今、ミストトレインガールズ(X指定)っていうゲームをやっていて、基本放置でアイテムや経験値を稼ぐようになっている。
ずーっと放置できれば良いんだけど、毎朝5時にスタート画面に戻されてしまう。
リスタートして再び放置するのはちょっと難しすぎるので、5時ちょい過ぎにPCの電源を落とすアプリを作ることにしました。
ウィンドウをずっと表示していると邪魔なので、タスクトレイに常駐するアプリとすることにしました。
アイコンの作成
タスクトレイに常駐させる場合、NotifyIconというものを使うのですが、自前のアイコンがあったほうが良いよねって事で作ります。
僕の場合、GIMP2をインストールして、32×32で作りました。(マルチサイズのアイコンも作れるっぽいですが面倒(技術が無い)なので1つだけ)
※ここでは「Shutdowner.ico」という名前で保存したこととする。
アプリ作成
- Visual Studio を起動
- 新しいプロジェクトの作成
- テンプレートでWindowsフォームアプリ(ここでは.NET5用)を選択して「次へ」
- 適当な名前を付けて「次へ」(ここでは「Shutdowner」とする)
- ターゲットフレームワーク(ここでは.NET5)を選択して「作成」
作成したアイコンをリソースに入れる
- プロジェクト(適当に付けた名前)を右クリックして「プロパティ」を表示
- 「リソース」を選択し、「このプロジェクトには規定のリソースが含まれていません。ファイルを作成するには、ここをクリックしてください。」をクリック
- この画面に先ほど作ったアイコンをドラッグ&ドロップ
Program.csの編集
using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; using System.Windows.Forms; namespace Shutdowner { static class Program { static NotifyIcon nicon; /// <summary> /// The main entry point for the application. /// </summary> [STAThread] static void Main() { //元からあるコードはコメントアウト //Application.SetHighDpiMode(HighDpiMode.SystemAware); //Application.EnableVisualStyles(); //Application.SetCompatibleTextRenderingDefault(false); //Application.Run(new Form1()); nicon = new NotifyIcon(); nicon.Icon = Shutdowner.Properties.Resources.Shutdowner; nicon.Text = "ツールチップに表示されるテキスト"; nicon.Visible = true; Application.Run(); } } }