【C#】アプリの二重起動を禁止する

方法

2つの方法がある
[1] Process.GetProcessesByName()を使用する
[2] Mutexを使用する

サンプル

[1] Process.GetProcessesByName()

[STAThread]
static void Main()
{
    Application.EnableVisualStyles();
    Application.SetCompatibleTextRenderingDefault(false);
    if (Process.GetProcessesByName(Process.GetCurrentProcess().ProcessName).Length > 1)
    {
        MessageBox.Show("多重起動はできませんYo");
    }
    else
    {
        Application.Run(new Form1());
    }
}

[2] Mutexを使用する

[STAThread]
static void Main()
{
    Application.EnableVisualStyles();
    Application.SetCompatibleTextRenderingDefault(false);
    bool isCreated;
    using (new Mutex(true, Process.GetCurrentProcess().ProcessName, out isCreated))
    {
        if (!isCreated)
        {
            MessageBox.Show("多重起動はできません。");
        }
        else
        {
            Application.Run(new Form1());
        }
    }
}