C# と VB.NET の質問掲示板

わんくま同盟

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト


(過去ログ 47 を表示中)
■25439 / )  Re[1]: VS2005 VB.NET 二重起動防止について
□投稿者/ たくボン (26回)-(2008/09/19(Fri) 13:22:23)
No25435 (ラン さん) に返信
> 同じExe内の親画面から子画面を呼び出す際に、二重起動防止を入れたいのですが、どうすればよいのか教えてください。
おなじExe内で多重起動を制御したいなら、変数にすればよいのでは?

Form1(親画面)、Form2(子画面)とすると、

Public Class Form1
    Private frmChild As Form2

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        If Not frmChild Is Nothing Then
            frmChild.Close()
            frmChild = Nothing
        End If
        frmChild = New Form2
        frmChild.Show()
    End Sub
End Class


ちなみに、Mutexを使うのは自身のプロセスの多重チェックをする場合などに使えばいいかな。こんな感じで。
Imports System.Threading

Public Class MultiplexRunBlocker
    Private Shared _mutex As Mutex

    <STAThread()> _
    Public Shared Sub Main()
        _mutex = New Mutex(False, My.Application.Info.AssemblyName)

        If Not _mutex.WaitOne(0, False) Then
            MessageBox.Show("多重起動はできません")
            Return
        End If
        Application.Run(New MainFrom())
    End Sub
End Class


返信 編集キー/


管理者用

- Child Tree -