VB6 二重起動確実防止について
VB6 SP5にて2重起動確実な防止処理をいれようとCreateMutex 関数を使用しようと思っています。
CreateMutex 関数を埋め込んでEXEを実行すると
実際に対象となるプログラムが起動しているにも関わらず起動してしまいます。
何がいけないのか?検討がつかず困っています。
下記がプログラムになります。
何かわかりましたらご回答の程、よろしくお願い致します。
***Win32API****************
Option Explicit
' CreateMutex 関数
Private Declare Function CreateMutex Lib "KERNEL32.DLL" Alias "CreateMutexA" ( _
ByRef lpMutexAttributes As Long, _
ByVal bInitialOwner As Long, _
ByVal lpName As String _
) As Long
' CloseHandle 関数
Private Declare Function CloseHandle Lib "KERNEL32.DLL" ( _
ByVal hObject As Long _
) As Long
************************************
SUB MAIN*********************************
Public Sub Main()
Dim hMutex As Long
hMutex = CreateMutex(ByVal 0&, 0&, App.Title)
On Error GoTo Err_Main
If Err.LastDllError = 0 Then
Dim cForm As Form1
Set cForm = New Form1
Call cForm.Show(vbModal)
End If
Err_Main:
If hMutex <> 0 Then
Call CloseHandle(hMutex)
End If
End Sub
************************************************
お礼
そうです、アプリケーションのほうです。 初心者なものでよくわからなかったので、別の方法でやりました。 きっと、そのSingletonパターンというのはいいものなんでしょうね・・。 どうもありがとうございました。