'******************************************************************************
'* 関数名:重複起動チェック(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
|