[C#]スクリーンセイバーの作り方 | gdgd日記

gdgd日記

適当に思いついたことを書くフリーダムなブログ

実は拡張子exeをscrにしただけらしいのですが複数のコマンドラインが渡されるそうです

static void Main(string[] args) {
if (args.Length > 0) {
// 2 文字のコマンド ライン引数を取得します。
string arg = args[0].ToLower(CultureInfo.InvariantCulture).Trim().Substring(0, 2);
switch (arg) {
case "/c":
// オプション ダイアログを表示します。
ShowOptions();
break;
case "/p":
// プレビューに対して何もしません。
break;
case "/s":
// スクリーン セーバーのフォームを表示します。
(new Form1()).ShowDialog();
break;
default:
MessageBox.Show("コマンド ライン引数が無効です :" + arg, "コマンド ライン引数が無効です。", MessageBoxButtons.OK, MessageBoxIcon.Error);
break;
}
} else {
// 渡される引数がない場合、スクリーン セーバーを表示します。
(new Form1()).ShowDialog();
}
}

メインループをそのまま利用するとPCの処理能力をギリギリまで利用するスクリーンセーバーになってしまいます。
 なのでループ周辺をスレッド処理にして、

Thread.Sleep(5);
こういうサイトが参考になるかもしれない
http://www.harding.edu/fmccown/screensaver/screensaver.html