Form上に3つボタンがあり1つのボタンに対し、
1つのmdbを起動させるというものです。<−−起動するmdbはそれぞれ異なります。
mdbが起動中の場合は、3つボタンどれを押してもmdbは起動できません。
下記のプログラムを作成したのですが、
対象がexeファイルだと正常な動作をしてくれます。
mdbだとプログラム上のチェックに反応しません。
何か良い方法はないでしょうか?
テスト環境:
OS Win2000
VB 6.0
DB Access97
Dim hProcess As Long 'プロセス
Dim lret As Long
Private Sub Cmd_01_Click()
'アプリ1つ目
If 起動監視 = False Then
lret = Shell("C:\テスト補助プログラム\多重起動監視\File\db1.mdb", vbNormalFocus)
hProcess = OpenProcess(PROCESS_QUERY_INFORMATION, 1, lret)
End If
End Sub
Private Sub Cmd_02_Click()
'アプリ2つ目
If 起動監視 = False Then
lret = Shell("C:\テスト補助プログラム\多重起動監視\File\db2.mdb", vbNormalFocus)
hProcess = OpenProcess(PROCESS_QUERY_INFORMATION, 1, lret)
End If
End Sub
Private Sub Cmd_03_Click()
'アプリ3つ目
If 起動監視 = False Then
lret = Shell("C:\テスト補助プログラム\多重起動監視\File\db3.mdb", vbNormalFocus)
hProcess = OpenProcess(PROCESS_QUERY_INFORMATION, 1, lret)
End If
End Sub
Private Sub Cmd_end_Click()
Unload Me
End Sub
Private Function 起動監視() As Boolean
Dim lExitCode As Long
lret = GetExitCodeProcess(hProcess, lExitCode)
If lExitCode = STILL_ACTIVE Then
起動監視 = True
MsgBox "起動されています"
Else
起動監視 = False
' MsgBox "起動されていません"
End If
End Function
自力で解決しました
ツイート | ![]() |