- vb中的shell我想用VB写个程序:用shell运行另一个会自
- 我想用写个程序:用shell运行另一个会自动结束的程序,并且测出它被运行的时间.
换句话说就是:用shell运行了某exe后,怎样知道这个exe是否结束.
- '有多种方法可以实现这个需求,下面提供一种方法,供参考:
Optn Explicit
Private Const WAIT_INFINITE = -1&
Private Const SYNCHRONIZE = &H100000
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 Sub Command1_Click()
Dim hProcess As Long
Dim taskId As Long
Dim cmdline As String
cmdline = "notepad.exe"
taskId = Shell(cmdline, vbNormalFocus)
hProcess = OpenProcess(SYNCHRONIZE, True, taskId)
Call WaitForSingleObject(hProcess, WAIT_INFINITE)
CloseHandle hProcess
MsgBox "调用记事本程序结束."
End Sub