テレホマンマスコット

C#チュートリアルとして,マのネタ帳にあるタスクトレイ常駐型テレホマンマスコットを作成します.

これは何?

午後11時になると突如登場するテレホマン。ノスタルジーに浸れるデスクトップマスコット。

           _____________
   ___   /
 /´∀`;::::\<  テレホマン フライングアタ~~~~ック!!!
/    /::::::::::| \_____________
| ./|  /:::::|::::::|
| ||/::::::::|::::::|

説明しよう!
テレホマンフライングアタックとは
23時まで残すところ2分59秒の瞬間に繋ぐテレホマンの事である。
へっぽこプロバイダだと
回線が23時の瞬間に一斉に埋まってしまうため、
10円損してでも回線をゲットするという目的から生まれた大技である!
その凄まじいまでのインターネットへの執念は
DSLマンやFTTHマンの回線速度を上回る最強の攻撃力を発揮する。

がんばれ ぼくらのテレホマン みんなのテレホマン 
  • 時報同様に「テッ、テッ、テレホー」で出現するのがミソらしい。

制作開始

まずはテレホマンを用意します.

こんな感じで

telephoman.png

今回は画像で用意しました. AAでもいいですよ.

Windowsフォームアプリケーション

で作成を開始しましょう.

背景にテレホマン

まずはFormの背景をテレホマンにしましょう.BackgroundImageプロパティに先ほどつけ込んでおいたテレホマンを指定しましょう. このままだと繰り返して表示されてウザイのでBackgroundImageLayoutプロパティをZoomとかStretchにするといいでしょう.

枠をなくす

Formの外枠を無くしてみましょう.FormBorderStyleプロパティをNoneにしましょう. 枠なくすと×ボタンもなくなるのでそのままでは終了できなくなるので注意.

真ん中に表示する

せっかくですから登場するときはど真ん中にしたいですね. StartPositionプロパティをCenterScreenにすると真ん中になります.

タスクトレイに表示する

今回は常駐型デスクトップマスコットですから, タスクトレイにアイコンを表示させましょう. それにはツールボックスからNotifyIconを使います. NotifyIconアイコンを設置したらVisibleプロパティをtrueします. これでアイコンが表示されます.アイコンはお好みで用意しましょう.

タスクトレイに表示したらタスクバーの表示はもう必要ないでしょう. FormShowInTaskbarプロパティをFalseにしてください.

タイマー

さて,23時にテッ、テッ、テレホーするためには指定した時間になるとメソッドを呼んでくれると良さそうです. しかし,そんな便利な機構って意外とないんですねー.

指定した時間にお知らせしてくれるメソッド

そこで,指定した時間おきにメソッドを呼んでくれるTimerクラスがあります. それを利用して11時になったらお知らせするメソッドを自分で作ることにしましょう. ツールボックスからTimerを設置しましょう.

TimerIntervalプロパティを1000にします. Intervalは何ミリ秒ごとにメソッドを実行するかを指定します.今回は1000ミリ秒ですから1秒ごとですね. そして,EnabledプロパティをTrueにしておきます.これでタイマーが有効になります,

Timerイベントの登録

Timerを選択して,プロパティウィンドウのところの雷アイコンを押してください. 雷アイコンを押すと,プロパティがイベントに変わります.

イベントはなんか起きたとき誰かが呼んでくれるメソッドみたいなそんな感じのやつです. TimerクラスにはTickイベントがあります.ここにメソッドを登録すると1秒おきにそのメソッドを実行してくれます. Tickをダブルクリックすると,そのメソッドを自動で作ってくれます.

さてそのメソッドの中で今23時かどうか調べれば良いわけです. 現在の時刻はDateTimeクラスのNowプロパティで取得できます. さらに時間,分,秒はDateTimeクラスのHour, Minute, Secondプロパティで取得できるので,これと比較すればおk.

private void timer1_Tick(object sender, EventArgs e)
{
	//現在時刻
	DateTime now = DateTime.Now;
	if (now.Hour == 23 && now.Minute == 0 && now.Second == 0)
	{
		//時間になったらテレホー
		this.Show();
	}
}

23時になるとテレホーするためにフォームを表示させます. FormクラスのShowメソッド

添付ファイル: filetelephoman.png 1068件 [詳細]