-
二重启动判定(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;
}
}
出处:https://www.cnblogs.com/secying/archive/2011/09/09/2172246.html