.NET C#,VB.NET,VC.NET
■二重起動防止
Mutexを使って二重起動を防止します。
具体的には
FormLoad時などにMutexを作成してみて
既に作成されていれば二重起動されたと見なします。
C#
private System.Threading.Mutex mutex;
private void Form1_Load(object sender, System.EventArgs e)
{
// Mutexを作成(Mutex名はユニークな名前を付けてください)
mutex = new System.Threading.Mutex( false, "unko" );
if ( !mutex.WaitOne( 0, false ) )
{
MessageBox.Show( "二重起動です!", "INFO" );
this.Close();
}
}
private void Form1_Closed(object sender, System.EventArgs e)
{
// 作成したMutexをクローズ
mutex.Close();
}
VB.NET
Private mutex As System.Threading.Mutex
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
'Mutexを作成(Mutex名はユニークな名前を付けてください)
mutex = New System.Threading.Mutex(False, "unko")
If (mutex.WaitOne(0, False) = False) Then
MessageBox.Show("二重起動です!", "INFO")
Me.Close()
End If
End Sub
Private Sub Form1_Closed(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Closed
'作成したMutexをクローズ
mutex.Close()
End Sub
VC.NET
private: System::Threading::Mutex* mutex;
private: System::Void Form1_Load(System::Object * sender, System::EventArgs * e)
{
// Mutexを作成(Mutex名はユニークな名前を付けてください)
mutex = new System::Threading::Mutex( false, "unko" );
if ( !mutex->WaitOne( 0, false ) )
{
MessageBox::Show( "二重起動です!", "INFO" );
this->Close();
}
}
private: System::Void Form1_Closed(System::Object * sender, System::EventArgs * e)
{
// 作成したMutexをクローズ
mutex->Close();
}
トップ > .NET C#,VB.NET,VC.NET
Copyright (C) 2005.09 〜 By Shougo Suzaki