可以用API函数实现:'-----------------------------------
'Shell的异步执行时使用
Public Declare Function GetExitCodeProcess Lib "kernel32" (ByVal hProcess As Long, lpExitCode As Long) As Long
Public Declare Function OpenProcess Lib "kernel32" (ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, ByVal dwProcessId As Long) As Long
Public Const Process_Query_Information = &H400
Public Const Still_Active = &H103
'----------------------------------- Dim longReturn As Long
Dim longProcess As Long
Dim longExitcode As Long
longReturn = Shell("……", vbNormalFocus)
longProcess = OpenProcess(Process_Query_Information, False, longReturn)
Do '如果Shell调的外部程序还在运行,则一直等待
GetExitCodeProcess longProcess, longExitcode
DoEvents
Loop While longExitcode = Still_Active该给分了吧? :-)
'Shell的异步执行时使用
Public Declare Function GetExitCodeProcess Lib "kernel32" (ByVal hProcess As Long, lpExitCode As Long) As Long
Public Declare Function OpenProcess Lib "kernel32" (ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, ByVal dwProcessId As Long) As Long
Public Const Process_Query_Information = &H400
Public Const Still_Active = &H103
'----------------------------------- Dim longReturn As Long
Dim longProcess As Long
Dim longExitcode As Long
longReturn = Shell("……", vbNormalFocus)
longProcess = OpenProcess(Process_Query_Information, False, longReturn)
Do '如果Shell调的外部程序还在运行,则一直等待
GetExitCodeProcess longProcess, longExitcode
DoEvents
Loop While longExitcode = Still_Active该给分了吧? :-)
要用什么API阿
>Hanson 天啊~~我倒~
书名记不太清了,好象叫“API FOR VISUAL BASIC 使用指南”,
很厚的一本,很详细的好书,建议你去找找。
Const WM-CLOSE = &H10
Const WM-QUIT = &H12Dim Handle As Integer
Dim n As Integer定义关闭程序窗口的子程序
Sub CloseWin() ′关闭指定窗口
Dim WinText As String
Dim i As Integer
WinText = ″.....″ ‘要关闭的程序窗口的标题
Handle = FindWindow(vbNullString, WinText)
PostMessage Handle, WM-CLOSE, 0, 0
If Handle <> 0 Then MsgBox ″已关闭″
End Sub
这里有一个好的办法。
OpenProcess的返回值就是句柄可以用CloseHandle来把程序关闭了