就怕你要关掉的是瑞星等杀毒工具,^_^Declare Function EnumWindows Lib "user32" (ByVal wndenmprc As Long, ByVal lParam As Long) As Long Declare Function GetWindowText Lib "user32" Alias "GetWindowTextA" (ByVal hwnd As Long, ByVal lpString As String, ByVal cch As Long) As Long Private Function EnumCallback(ByVal app_hWnd As Long, ByVal param As Long) As Long Dim buf As String * 256 Dim title As String, lS1 As String Dim Length As Long, li As Long lS1 = 要关掉窗口的标题 Length = GetWindowText(app_hWnd, buf, Len(buf)) title = Left(buf, Length) If InStr(title, lS1) <> 0 Then li = SendMessage(app_hWnd, &H10, 0, 0) End If ' Continue searching. EnumCallback = 1 End FunctionPublic Sub MyClose() EnumWindows AddressOf EnumCallback, 0 End Sub调用MyClose就可以了
比如你现在运行的程序是MyProgram.exe ,那么就将ls1赋值="MyProg"就可以了
上面程序少了一点东西,是SendMessage函数的 Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As String) As Long
先用API函数取得,窗体句柄
然后...
自己找一下资料吧
Declare Function GetWindowText Lib "user32" Alias "GetWindowTextA" (ByVal hwnd As Long, ByVal lpString As String, ByVal cch As Long) As Long
Private Function EnumCallback(ByVal app_hWnd As Long, ByVal param As Long) As Long
Dim buf As String * 256
Dim title As String, lS1 As String
Dim Length As Long, li As Long
lS1 = 要关掉窗口的标题
Length = GetWindowText(app_hWnd, buf, Len(buf))
title = Left(buf, Length)
If InStr(title, lS1) <> 0 Then
li = SendMessage(app_hWnd, &H10, 0, 0)
End If
' Continue searching.
EnumCallback = 1
End FunctionPublic Sub MyClose()
EnumWindows AddressOf EnumCallback, 0
End Sub调用MyClose就可以了
Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As String) As Long