//ライセンス情報はAgeOnフォルダのLISENCEフォルダを参照してください
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading;
using System.Windows.Forms;

//参考にしたサイト：http://dobon.net/vb/dotnet/process/killprocesse.html

namespace ExitAndRun
{
    public partial class MainForm : Form
    {
        public MainForm()
        {
            InitializeComponent();

            Thread t = new Thread(new ThreadStart(ThreadExitAndRun));
            t.IsBackground = true;
            t.Start();
        }

        public void ThreadExitAndRun()
        {
            System.Diagnostics.Process[] ps =
                System.Diagnostics.Process.GetProcessesByName("ageon");

            foreach (System.Diagnostics.Process p in ps)
            {
                //クローズメッセージを送信する
                p.CloseMainWindow();

                //プロセスが終了するまで最大10秒待機する
                p.WaitForExit(10000);
                //プロセスが終了したか確認する
                if (p.HasExited)
                {
                    //終了した
                    System.Diagnostics.Process.Start("ageon.exe");
                }
                else
                {
                    //終了しない
                }
            }

            this.Invoke((Action)(() => this.Close()));
        }
    }
}
