vb调用shell执行一个程序,如何关闭dos窗口?

解决方案 »

  1.   

    shell "c:\windows\command.com /c dir c:\*.*",vbhide
      

  2.   

    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
    Const WM_CLOSE = &H10' close a MS-DOS window
    '
    ' if Caption is omitted, it randomly closes one
    ' of the opened Dos windowsSub CloseDosWindow(Optional Caption As Variant)
        Dim hWnd As Long
        
        ' if argument is omitted, don't care for window caption
        If IsMissing(Caption) Then Caption = vbNullString
        
        ' find the window
        hWnd = FindWindow("ConsoleWindowClass", Caption)
        ' close it by sending it a WM_CLOSE message
        If hWnd Then
            SendMessage hWnd, WM_CLOSE, 0, ByVal 0
        End IfEnd Sub