方法
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());
}
}
}