二重启动判定,c#,vb.net

vb.net:

    Sub Main()

Dim blnRet As Boolean

''二重起動ができません

If PrevInstance() = True Then

MessageBox.Show("二重起動ができません。", "二重起動", MessageBoxButtons.OK, MessageBoxIcon.Error)

Else

Application.Run(New CR01.FML.SYDA12)

End If

End Sub

  '----------------------------------------------------------------

'- @(f)

'-

'- 機 能: システムの二重起動が判定

'-

'- 返 値: True Or False

'-

'- 引 数: objCheck

'-

'- 機能説明: システムの二重起動が判定

'-

'----------------------------------------------------------------

Private Function PrevInstance() As Boolean

If Diagnostics.Process.GetProcessesByName(Diagnostics.Process.GetCurrentProcess.ProcessName).Length > 1 Then

Return True

Else

Return False

End If

End Function

c#:

/// <summary>

/// アプリケーションのメイン エントリ ポイントです。

/// </summary>

[STAThread]

static void Main()

{

if (PrevInstance())

{

MessageBox.Show("二重起動ができません", "二重起動", MessageBoxButtons.OK, MessageBoxIcon.Error);

}

else

{

Application.EnableVisualStyles();

Application.SetCompatibleTextRenderingDefault(false);

Application.Run(new Form1());

}

}

/// <summary>

/// システムの二重起動が判定

/// </summary>

/// <returns>True Or False</returns>

private static bool PrevInstance()

{

if (Process.GetProcessesByName(Process.GetCurrentProcess().ProcessName).Length > 1)

{

return true;

}

else

{

return false;

}

}

或:

/// <summary>

/// システムの二重起動が判定

/// </summary>

/// <returns>True Or False</returns>

private static bool PrevInstance()

{

bool bCreateNew;

Mutex objMutex = new Mutex(true, Process.GetCurrentProcess().ProcessName, out bCreateNew);

if (!bCreateNew)

{

return true;

}

else

{

return false;

}

}