'需一个command1,一个text1
Option ExplicitPrivate Declare Function FindWindowEx Lib "user32" Alias "FindWindowExA" (ByVal hWnd1 As Long, ByVal hWnd2 As Long, ByVal lpsz1 As String, ByVal lpsz2 As String) As Long
Private Declare Function SendMessageBynum Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
Private Declare Function SendMessageByString Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As String) As Long
Private Declare Function GetWindowTextLength Lib "user32" Alias "GetWindowTextLengthA" (ByVal hwnd As Long) As Long
Private Declare Function GetWindowText Lib "user32" Alias "GetWindowTextA" (ByVal hwnd As Long, ByVal lpString As String, ByVal cch As Long) As LongPrivate Declare Function SetWindowText Lib "user32" Alias "SetWindowTextA" (ByVal hwnd As Long, ByVal lpString As String) As LongPrivate Sub Command1_Click()
Dim Index As Long
Dim IEhwnd As LongText1.Text = ""
Do
    Index = Index + 1
    IEhwnd = FindWindowEx(0, IEhwnd, "IEFrame", vbNullString)
    If IEhwnd = 0 Then
      Exit Do
      
    Else
      Text1.Text = Text1.Text & Index & "." & vbCrLf
      Text1.Text = Text1.Text & "标题 : " & GetWindowCaption(IEhwnd) & vbCrLf
      Text1.Text = Text1.Text & "URL  : " & GetIEUrl(IEhwnd) & vbCrLf & vbCrLf
      
    End If
    
LoopIf Index > 1 Then
    Text1.Text = Text1.Text & "共" & Index - 1 & "个窗口"
    
Else
    Text1.Text = "没有任何IE窗口!"End If
Text1.SelStart = Len(Text1.Text)End SubPrivate Function GetIEUrl(ByVal hwnd As Long) As String
Dim Index As Long
Dim ClassName As String
Dim TextLength As Long
Const WM_GETTEXT As Long = &HD
Const WM_GETTEXTLENGTH As Long = &HEConst WM_SETTEXT = &HC
Const WM_KEYDOWN = &H100For Index = 1 To 5
    ClassName = Switch(Index = 1, "WorkerA", Index = 2, "ReBarWindow32", Index = 3, "ComboBoxEx32", Index = 4, "ComboBox", Index = 5, "Edit")
    hwnd = FindWindowEx(hwnd, 0, ClassName, vbNullString)
    
NextTextLength = SendMessageBynum(hwnd, WM_GETTEXTLENGTH, 0, 0)
GetIEUrl = String(TextLength, 0)
SendMessageByString hwnd, WM_GETTEXT, TextLength + 1, GetIEUrl'SendMessageByString hwnd, WM_SETTEXT, 0, "I love you!"
'SendMessageByString hwnd, WM_KEYDOWN, vbKeyReturn, "I love you!"End FunctionPrivate Function GetWindowCaption(hwnd As Long) As String
Dim TextLength As LongTextLength = GetWindowTextLength(hwnd)
GetWindowCaption = String(TextLength, 0)
GetWindowText hwnd, GetWindowCaption, TextLength + 1'SetWindowText hwnd, "KILL!!!"End Function
以上供你参考,IE各版本类名好像不同,你自己去获取!

解决方案 »

  1.   

    HOOK IE不就行了,你可以到我的主页上去下载一个VB源代码,演示控制IE的。
      

  2.   

    忘了写网址了
    http://lihuasoft.go163.net
      

  3.   

    http://www.csdn.net/Develop/read_article.asp?id=6351
      

  4.   

    想做反黄软件啊?很简单的,就是一个TIMER1,时刻扫描系统,
    一旦出现IE的窗口,就获取HWND,然后枚举子窗口COMBBOX,然后获取其文字,
    然后和自己的反黄网址库进行对比,如果成立就强行关闭IE或者指挥IE到自己指定的网址。
    哎,这个方法已经在3年前就已经有人使用了。
    这种技术已经过时了,使用VXD吧。这才是百催不垮的好办法。
      

  5.   

    flashboy(快活一刀) 你懂不懂IE呀
    你看完的的给的那个程序再说
    lihuasoft.go163.net