可用Shell函数调用的不行!除非自己关闭使用完的Dos窗口,不过我找到了一种方法,如下:
可以先用Findwindow函数得到Dos窗口的句柄,然后用Sendmessage函数调用WM_CLOSE消息来关闭窗口,如下(希望对你有用):
本示例是使用VB6调用Extract命令解压缩*.CAB文件
'窗体的通用过程
Option Explicit
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
Private Const WM_CLOSE = &H10
Private Sub Command1_Click()
ChDir "f:\" '保存解压缩文件的路径
Shell "c:\windows\command\Extract.exe f:\default.cab form1.log", vbHide '利用extract.exe程序解压缩default.cab文件中的form1.log文件
Timer1.Enabled = True
End Sub
Private Sub Timer1_Timer()
Dim Lngnums As Long
Lngnums = FindWindow(vbNullString, "已完成 - Extract")'得到窗口标题为“已完成 - Extract”的窗口句柄
If Lngnums <> 0 Then'如果得到句柄
SendMessage Lngnums, WM_CLOSE, 0, 0'关闭Dos窗口
Timer1.Enabled = False
End If
End Sub