プログラムの終了コードを取得する
スポンサーリンク
VB6 では、Win32API の GetExitCodeProcess 関数を使用します。
サンプルコード
以下にサンプルコードを示します。
VB6.0 以前
Option Explicit ' OpenProcess 関数 Private Declare Function OpenProcess Lib "KERNEL32.DLL" ( _ ByVal dwDesiredAccess As Long, _ ByVal bInheritHandle As Long, _ ByVal dwProcessId As Long _ ) As Long ' CloseHandle 関数 Private Declare Function CloseHandle Lib "KERNEL32.DLL" ( _ ByVal hObject As Long _ ) As Long ' GetExitCodeProcess 関数 Private Declare Function GetExitCodeProcess Lib "KERNEL32.DLL" ( _ ByVal hProcess As Long, _ ByRef lpExitCode As Long _ ) As Long ' 定数の定義 Private Const PROCESS_QUERY_INFORMATION As Long = &H400 Private Const STILL_EXIT As Long = &H103
VB6.0 以前
' メモ帳を起動して、プロセス ID を取得する
Dim lProcessId As Long
lProcessId = CLng(Shell("Notepad", vbNormalFocus))
' プロセスのハンドルを取得する
Dim hProcessHandle As Long
hProcessHandle = OpenProcess(PROCESS_QUERY_INFORMATION, 0&, lProcessId)
' 制御を止めるために、メッセージ ボックスを表示する
Call MsgBox("このメッセージ ボックスが表示されてる間に終了してください")
' 終了コードを取得する
Dim lExitCode As Long
Call GetExitCodeProcess(hProcessHandle, lExitCode)
' 起動したプログラムが終了したかどうかを判断する
If lExitCode <> STILL_EXIT Then
Call MsgBox("終了コードは " & CStr(lExitCode) & " です")
End If
' プロセスのハンドルを閉じる
Call CloseHandle(hProcessHandle)
関連するリファレンス
準備中です。
