Warning: Trying to access array offset on value of type bool in /home/c7890680/public_html/kage1208.1bit.tokyo/wp-content/plugins/only-tweet-like-share-and-google-1/tweet-like-plusone.php on line 258

プロ生ちゃん3分タイマープログラム

指定した時間が経過するとプロ生ちゃんが音声で教えてくれるプログラムです。
デフォルトは3分ですが変更可能です。
サンプルの動作動画では3分も待てないので5秒に変更しています。

暮井慧の音声は許諾を得て利用しています。当作品以外での利用(音声の抽出/加工/公開などの行為)を禁止します。

画面は現在の経過時刻を表示する領域(label1)と時間を指定する(tb_jikan)、プロ生ちゃんを表示する(pictureBox1)、開始停止のボタン(button1,button2)で構成されています。

画像と音声はプロ生ちゃんの素材を使用しています。

プログラムの解説:
・変数の有効な範囲がよくわからなかったので(グローバル変数? 局所変数?)、GLOBAL.d1という変数を作っていますが、もっとシンプルにできそうな気がします。
・起動時に暮井慧の音声について注意を表示しています。本当はポップアップウインドウで表示し、OKを押すとプログラムを開始したかったのですが、別ウインドウを表示させる方法がわからなかったので、注意書きを画像ファイルで用意しStartボタンを押してカウントを開始するまで表示しています(メッセージウインドウをポップアップしたいですね)。
・指定時間はデフォルトで3分、テキストボックス内を書き換えることができますが、内容については未チェックかつ文字列で比較しているので、時刻以外の文字列にしても動作します(が一致することがないので終了しません)、既に経過した時刻も指定できます(が一致することがないので終了しません、もしかすると何日かで1周して一致するかも?)

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Media;

namespace _3minutes
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
            GLOBAL.d1 = DateTime.Now;
        }

        private void Form1_Load(object sender, EventArgs e)
        {

        }

        private void button1_Click(object sender, EventArgs e)
        {
            timer1.Start();
            GLOBAL.d1 = DateTime.Now;
            pictureBox1.Image = Properties.Resources.sd_eye0;
        }

        private void button2_Click(object sender, EventArgs e)
        {
            pictureBox1.Image = Properties.Resources.sd02;
            timer1.Stop();
        }
        public static class GLOBAL
        {
            public static DateTime d1;
        }
        private void playsound()
        {
            SoundPlayer player = new System.Media.SoundPlayer(Properties.Resources.kei_voice_062);
            player.Play();
        }

        private void timer1_Tick(object sender, EventArgs e)
        {
            DateTime d2 = DateTime.Now;
            TimeSpan ts1 = d2 - GLOBAL.d1;
            String ts1s = Convert.ToDateTime(ts1.ToString()).ToLongTimeString();
            label1.Text = ts1s;
            if (ts1s.Equals(tb_jikan.Text))
            {
                playsound();
                pictureBox1.Image = Properties.Resources.sd05;
                timer1.Stop();
            }
        }
    }
}




C#でプログラミング

GW、夏季休暇とVisual Studio + C#でプログラムを作ってみました。きっかけは「プロ生ちゃんプチイラストコンテスト&プチプログラミングコンテスト開催!(GW明けぐらいまで)」と「プロ生ちゃんプチイラストコンテスト&プチプログラミングコンテスト開催!(夏)」でした。こういったコンテストはプログラミングのきっかけにいいですね。

いわゆるプログラミング言語でプログラムを作るのは超久しぶりです。最近のプログラミング言語(開発環境?API集?)は、多機能で便利ですね。ほとんどネットで検索したコマンドを並べているだけでプログラムが完成しました。

逆にその機能を持ったコマンドがなければ何もできない素人プログラマなわけですが…

最初はウインドウを表示するだけのプログラム、次に「Hello, World.」と表示するだけのプログラム(終了ボタン付き)、ネットワークカメラから静止画を取得するプログラム、ネットワークカメラの動体検知に反応があった時に静止画を取得するプログラム、プログラムを起動した時間と現在の時刻を表示するプログラム、さらに現在時刻から起動時刻を引いた時間を表示するプログラム、指定時間が来ると音声で教えてくれるプログラムなどちょっと機能を追加するとできそうなプログラムを作っています。