■ 重複起動チェック(DoubleCheck)

FindWindow GetLastActivePopup SetForegroundWindow ShowWindow の4つのAPIを使用して、2重起動の場合は、元のアプリケーションを呼び出します
FindWindowの1番目の引数にはクラス名を記述します
クラス名は vbNullString と省略することもできますが、Visual Basic 6で作成したアプリケーションの場合は "ThunderRT6Main"、Visual Basic 5で作成したアプリケーションの場合は "ThunderRT5Main" と明示的に指定することもできます
Appオブジェクトの PrevInstance プロパティを使用すれば、重複チェックが簡単に実現できます

'******************************************************************************
'*  関数名:重複起動チェック(DoubleCheck)
'*  機 能:アプリケーションタイトルによる重複起動のチェック
'*      既に起動していればアクティブにし、今回の起動を無効にする
'******************************************************************************
Public Sub DoubleCheck()

Dim w_title           As String         ' 検索タイトル
Dim w_hwnd            As Long           ' ウィンドウハンドル
Dim w_popuphwnd       As Long           ' アクティブウィンドウハンドル
Dim w_ret             As Long           ' 戻り値

    ' 検索タイトルをセットする
    w_title = App.Title
    ' 検索のため自タイトルを変更する
    App.Title = w_title & "Check"
    ' キャプションでウィンドウハンドルを検索する
    w_hwnd = FindWindow(vbNullString, w_title)
    ' 検索できなかった場合
    If w_hwnd = 0 Then
        ' 自タイトルを元に戻す
        App.Title = w_title
        ' 処理を抜ける
        Exit Sub
    End If
    ' 取得したウィンドウハンドルで直前のアクティブウィンドウハンドルを検索する
    w_popuphwnd = GetLastActivePopup(w_hwnd)
    ' 直前のアクティブウィンドウを一番手前に移動する
    w_ret = SetForegroundWindow(w_popuphwnd)
    ' 直前のアクティブウィンドウをアクティブ化して表示する
    w_ret = ShowWindow(w_popuphwnd, SW_RESTORE)
    ' 今回起動したアプリケーションを終了する
    End

End Sub