二重起動の無効化

Program.csふぁいるに下記を追記します。


        ///
        /// アプリケーションのメイン エントリ ポイントです。
        ///
        [STAThread]
        static void Main()
        {
            const string MUTEX_NAME = "MutexApplication";

            // Mutex インスタンスを生成します。二番目の引数 MUTEX_NAME は生成する Mutex の識別名です。
            System.Threading.Mutex mutex = new System.Threading.Mutex( false, MUTEX_NAME );

            // WaitOne メソッドを使って、所有権を得ます。
            // 最初の引数で 0 ミリ秒を指定して、所有権が取得できなくても待ちません。
            if ( mutex.WaitOne( 0, false ) )
            {
                // 下記の色付のコードはデフォルトで記入されているコードです。
                Application.EnableVisualStyles();
                Application.SetCompatibleTextRenderingDefault( false );
                Application.Run( new Form1() );

                mutex.ReleaseMutex();
            }
            else
            {
                // WaitOne メソッドで所有権を取得できなかった場合の処理です。
                MessageBox.Show( "アプリケーションは既に起動しています。", "タイトル");

            }

            mutex.Close();
        }

コメント