- 追加された行はこの色です。
- 削除された行はこの色です。
*C# [#b447990e]
*C# [#e7e405e9]
RIGHT:タグ [[:C#]]
#description(C# や .NET Framework に関するメモなど)
C#、.NET Framework に関するメモなど
C# や .NET Framework に関するメモなど
|&amz(4774149489);&amz(4797361344);&amz(4797370084);|
#contents
//#ls
//#ls2(,title)
**二重起動防止 [#cc6ad8e3]
-[[C#|二重起動を禁止してコマンドライン引数を取得する>http://www.k4.dion.ne.jp/~anis7742/codevault/00050.html]]
--先に起動しているプログラムのフォームを操作するときは this.MainForm を使う。
-[[C# - 二重起動を確実に禁止する>http://jeanne.wankuma.com/tips/csharp/process/mutex.html]]
--System.Threading。Mutex を使用する方法。
Mutex の 開放を忘れずに行うこと(異常終了扱いになったりする)。
#pre{{
static class Program
{
/// <summary>
/// アプリケーションのメイン エントリ ポイントです。
/// </summary>
[STAThread]
static void Main(){
Mutex mutex = null;
try
{
mutex = new Mutex(false, Properties.Resources.STR_APP_NAME);
if (mutex.WaitOne(0, false))
{
// アプリケーションの実行
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new Form1());
}
else
{
MessageBox.Show("プログラムが二重に起動しています。", "ERROR", MessageBoxButtons.OK, MessageBoxIcon.Stop);
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message, "ERROR", MessageBoxButtons.OK, MessageBoxIcon.Stop);
}
finally
{
if (mutex != null) { GC.KeepAlive(mutex); mutex.Close(); }
}
}
}
}}
//----
//#comment
//----
//#attach
//----