常駐ソフトを作るときの TIPS (C#編)

http://d.hatena.ne.jp/hygienic/20080927/1222514374
このあたり実は面倒なので、OneShotPost とかきつねのしっぽとかで使ってる TIPS を解説してみる。
まず、OneShotPost で使っているフォームの数は3種類です。

  1. MainForm
  2. PostForm
  3. UserConfigForm

そのうち、ユーザに表示されるのは PostForm と UserConfigForm の2枚だけです。MainForm はユーザには表示されません。
さて、MainForm が何をしているかというと、NotifyIcon*1を表示させるためだけに存在していたりします。
メインフォームの×ボタンをユーザが押すことができないので、そもそも終了をキャンセルさせる必要がありません。
そのくせ Windows の終了とかでもきっかりと終了してくれるので楽ちんです。終了をキャンセルさせる方法では「Windows がシャットダウンするときにはキャンセルさせない」という小細工が必要なのですが、その必要もありません。
NotifyIcon だけを貼り付けたまっさらな Form をメインにする方法、意外とお勧めです。

*1:タスクトレイに常駐するアイコン