- ベストアンサー
プログラムの表示順序の制御
- プログラムの表示順序を制御する方法について
- プログラムの表示順序を制御するためのテクニック
- 他のウィンドウとの干渉を防ぐプログラムの作り方
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
VB6と仮定して回答します。 .NETの場合、動かないと思いますのでご注意下さい。 以下は、それを実現するために私が過去に作成したプロシージャです。 参考にしてみて下さい。 Private Declare Function OpenProcess Lib "kernel32" (ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, ByVal dwProcessId As Long) As Long Private Declare Function WaitForSingleObject Lib "kernel32" (ByVal hHandle As Long, ByVal dwMilliseconds As Long) As Long Private Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long Public Function pfncWaitApp(strExeName As String, Optional vntOpt As Variant) As Boolean Dim lngResultCode As Long Dim lngIdProcess As Long Dim lngHdlProcess As Long Dim intOpt As Integer Const SYNCHRONIZE = &H100000 Const INFINITE = &HFFFF If IsMissing(vntOpt) Then intOpt = vbNormalFocus Else intOpt = vntOpt End If 'EXE起動 On Error Resume Next lngIdProcess = Shell(strExeName, intOpt) DoEvents Select Case Err Case 53 'Not Found MsgBox "指定されたプログラムが存在しません" & _ vbCr & "プログラム名 = " & strExeName, vbCritical pfncWaitApp = False Case 0 '正常 '同期をとる lngHdlProcess = OpenProcess(SYNCHRONIZE, 0&, lngIdProcess) lngResultCode = WaitForSingleObject(lngHdlProcess, INFINITE) lngResultCode = CloseHandle(lngHdlProcess) pfncWaitApp = True Case Else 'エラー MsgBox Error, vbCritical pfncWaitApp = False End Select End Function
お礼
確認が遅れて申し訳ありません。 早速試してみます。