アプリ版:「スタンプのみでお礼する」機能のリリースについて

お世話になります。

表題の通り、C#でスクリーンセーバーを作りたいのですが、
具体的な方法が解りません。

様々なサイトで、作り方が載っていたり、サンプルなども
あったりするのですが、どれも動いたものがありません。

環境は、Visual Studio 2010 C# ExpressEditionです。

真っ暗な画面の中を、一つのイメージが動き回るだけの
サンプルで構いませんので、方法や解説ではなく、
『この通りに書けば動くぞ』というサンプルを教えてください。

よろしくお願いします。

A 回答 (2件)

Windowsの場合、普通に「Project1.exe」などのように、単なる「実行ファイル」として作成して、拡張子を「.exe」から「.scr」に変えれば良い。

それを、C:\Windows\System32のフォルダに放り込むだけ。
    • good
    • 0

OSは何でしょうか。

Aeroの有無やシステムの設定(パフォーマンス優先とか)その辺が関係しているかもしれません。


参考として簡単なPictureBoxを表示させるサンプル(プロジェクトファイルもあります)
http://www.geekpedia.com/tutorial65_How-to-make- …
一応VS2008、Win7Pro x86でそのままビルドして動くのを確認しています。


サンプルでは
private void timer1_Tick(object sender, System.EventArgs e)
{
// set the new X position of the PictureBox to random number
int newX = rand.Next(0, (this.Size.Width - pictureBox1.Size.Width));
// set the new Y position of the PictureBox to random number
int newY = rand.Next(0, (this.Size.Height - pictureBox1.Size.Height));
// and actually move the PictureBox to the new position
pictureBox1.Location = new Point(newX, newY);
}

このように、一定時間ごとにランダムな位置へ瞬間移動させています。
tiomer1_Tickで座標の計算を行い、pictureBox1_Paintイベントを作成しその中できっちりと
Graphics g = e.Graphics;
g.DrawImage(bmp, PosX, PosY);
みたいに再描画すればよいかと思います。

座標計算も画面の解像度を取得して、XかYかが画面端に付いたら動く方向を変える等工夫できるかと。

全く動作しない、の原因を調べるには情報が足らず冒頭の事くらいしか助言できません。

この回答への補足

早速の回答、ありがとうございます。

頂いたサンプルは正しく動いたのですが、自作で作った方は、
実際の(ス)クリーンセーバーでエラーが出て
止まってしまいます。

以下がその内容です。

This application could not be started.
Do you want to view information about this issue?

このようなダイアログが出て、はいを選ぶと

http://support.microsoft.com/kb/2715633

のサイトが開きます。

ちなみに、OSはWin7と8です。

以上、引き続きお願いいたします。

補足日時:2013/06/27 18:05
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!