常駐ソフトを作るときの TIPS (C#編)
http://d.hatena.ne.jp/hygienic/20080927/1222514374
このあたり実は面倒なので、OneShotPost とかきつねのしっぽとかで使ってる TIPS を解説してみる。
まず、OneShotPost で使っているフォームの数は3種類です。
- MainForm
- PostForm
- UserConfigForm
そのうち、ユーザに表示されるのは PostForm と UserConfigForm の2枚だけです。MainForm はユーザには表示されません。
さて、MainForm が何をしているかというと、NotifyIcon*1を表示させるためだけに存在していたりします。
メインフォームの×ボタンをユーザが押すことができないので、そもそも終了をキャンセルさせる必要がありません。
そのくせ Windows の終了とかでもきっかりと終了してくれるので楽ちんです。終了をキャンセルさせる方法では「Windows がシャットダウンするときにはキャンセルさせない」という小細工が必要なのですが、その必要もありません。
NotifyIcon だけを貼り付けたまっさらな Form をメインにする方法、意外とお勧めです。
*1:タスクトレイに常駐するアイコン