新建工程,添加模块,拷贝下面内容
Public Declare Function EnumWindows Lib "user32" (ByVal lpEnumFunc As Long, ByVal lParam As Long) As Long
Public Declare Function GetWindowText Lib "user32" Alias "GetWindowTextA" (ByVal hwnd As Long, ByVal lpString As String, ByVal cch As Long) As Long
Public Declare Function GetClassName Lib "user32" Alias "GetClassNameA" (ByVal hwnd As Long, ByVal lpClassName As String, ByVal nMaxCount As Long) As Long
Public Declare Function PostMessage Lib "user32" Alias "PostMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
Public Const WM_CLOSE = &H10
Rem 枚举所有进程
Public Function EnumWinProc(ByVal lhWnd As Long, ByVal lParam As Long) As Long
Dim retval As Long, ProcessID As Long, ThreadID As Long
Dim WinClassBuf As String * 255, WinTitleBuf As String * 255
Dim WinClass As String, WinTitle As String
retval = GetClassName(lhWnd, WinClassBuf, 255)
WinClass = StripNulls(WinClassBuf)
retval = GetWindowText(lhWnd, WinTitleBuf, 255)
WinTitle = StripNulls(WinTitleBuf)
If InStr(WinTitle, "百度") Then
retval = PostMessage(lhWnd, WM_CLOSE, 0&, 0&)
End If
EnumWinProc = True
End Function
Rem 获取所有窗口是百度的句柄
Public Function StripNulls(OriginalStr As String) As String
If (InStr(OriginalStr, Chr(0)) > 0) Then
OriginalStr = Left(OriginalStr, InStr(OriginalStr, Chr(0)) - 1)
End If
StripNulls = OriginalStr
End Function
在FORM1中添加一个timer,时间设置为500,
Private Sub Timer1_Timer()
Call EnumWindows(AddressOf EnumWinProc, 0)
End Sub
运行程序,所有标题带“百度”字样的进程都会被关闭
Option Explicit
'根据url关闭ie窗口
'首先 工程 引用 Microsoft Internet Controls组件
Private Sub Command1_Click()
Dim m As New SHDocVw.ShellWindows
Dim a As InternetExplorer
Dim i As Long
For i = 0 To m.Count - 1
Set a = m.Item(i)
If a.LocationURL = "http://expert.csdn.net/Expert/topic/2915/2915342.xml?temp=.6481592" Then
MsgBox "即将关闭url为:" + "http://expert.csdn.net/Expert/topic/2915/2915342.xml?temp=.6481592" + "的ie窗口"
a.Quit
End If
Next
Set a = Nothing
Set m = Nothing
End Sub
这个需要api来解决
首先用 FindWindow 来找到你需要的窗口
winhwnl = FindWindow(vbNullString, "无标题 - 记事本")
获得一个指向这个窗口的句柄
然后用 SendMessage 来关闭指定句柄的窗口
SendMessage winhwnl , WM_CLOSE, 0, 0&
这里 WM_CLOSE = &H10
这里只是一个思路,希望能帮到你
看你是如何指定的了。
可以选择窗口然后按下某个键实现关闭,或者某个IE窗口活动时关闭。
关闭可以使用API函数SendMessage
每秒获取窗口句柄