| Menuへ | ||||
| アプリケーションを起動し終了するまで待つ | ||||
外部アプリケーションの起動を掲載しましたが、ここでは起動したアプリケーションが終了するまで待機させます。 |
||||
|
|
||||
| シート画面 | ||||
「電卓を起動」ボタンがクリックされると下記の流れで実行されます。 1) Shellで電卓を起動します。 2) OpenProcessで起動した電卓のプロセスハンドルを取得します。 3) WaitForSingleObjectで待機します。 4) CloseHandleで終了処理を行います。 ![]() |
||||
| 実行コード | ||||
Option Explicit 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 Private Const SYNCRONIZE As Long = &H100000 Private Const INFINITE As Long = &HFFFF Private Sub CommandButton1_Click() Dim IdProc As Long Dim hProc As Long Dim lret As Long Cells(2, 4) = "開始" '電卓の起動 IdProc = Shell("C:\WINDOWS\SYSTEM32\CALC.EXE", vbNormalFocus) Cells(3, 4) = "起動" hProc = OpenProcess(SYNCRONIZE, 1, IdProc) lret = WaitForSingleObject(hProc, INFINITE) lret = CloseHandle(hProc) Cells(4, 4) = "終了" End Sub |
||||
|
|
||||
| Topへ | ||||
|
|