我用一个数据库保存许多网址片段. 实时搜索浏览器地址栏内是否包含这些地址片段现在是不知道如何搜索...
我用的是 ADO

解决方案 »

  1.   


    取得IE地址栏的地址
    通过实例学习窗口函数---取得IE地址栏的地址   大家知道在 Windows 中,每个程序都是窗口的形式,不管是隐藏的还是显示的,都可以取得它们的句柄,而每一个程序中的控件又都是一个一个的子窗口,同样也可以取得它们的句柄,这样在理论坛上可以取得任意程序中任意位置的值,这里我们就以取得 IE 浏览器地址栏中的地址为例子,在下面的例子中我分别自定义的 3 个函数: 
    1、EnumProc `遍查主窗口 
    2、GetZiWin `遍查子窗口 
    3、GetWinText `取得指定句柄的值   这 3 个函数只要做一定的修改,就可以在你任意的程序中单独使用,最后希望大家通过这个例子能够掌握窗口函数的基础技巧。 程序界面: 
    如图1所示,装载1个CommandButton(Caption为取得IE地址栏的地址)、1个ListBox控件,其他属性全部为默认。 程序代码: 'Form1.frm 文件 
    '-------------- 
    Option Explicit 
    Private Sub Command1_Click() 
     List1.Clear 
     EnumWindows AddressOf EnumProc, 0 
     If List1.ListCount = 0 Then List1.AddItem "没有启动 IE 浏览器" 
    End Sub 'Module1.bas 文件 
    '--------------- 
    Option Explicit 
    '相关 API 函数声明 
    Public Declare Function EnumWindows Lib "user32" (ByVal lpEnumFunc As Any, 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 GetWindow Lib "user32" (ByVal hwnd As Long, ByVal wCmd As Long) As Long '取得窗口句柄 
    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 GW_CHILD = 5 
    Const GW_HWNDNEXT = 2 
    Const WM_GETTEXT = &HD 
    Const WM_GETTEXTLENGTH = &HE '遍查主窗口 
    Public Function EnumProc(ByVal app_hwnd As Long, ByVal lParam As Long) As Boolean 
    Dim buf As String * 1024 
    Dim length As Long 
    Dim title As String  length = GetWindowText(app_hwnd, buf, Len(buf)) 
     title = Left$(buf, length)  '判断是否为 IE 浏览器窗口 
     If InStr(title, " - Netscape") Or InStr(title, " - Microsoft Internet Explorer") Or InStr(title, "Offline Explorer") Then 
      Call GetZiWin(app_hwnd) 
     End If 
      
     EnumProc = 1 
    End Function '遍查子窗口 
    Public Function GetZiWin(window_hwnd As Long) As String 
    Dim buf As String 
    Dim buflen As Long 
    Dim child_hwnd As Long 
    Dim children() As Long 
    Dim num_children As Integer 
    Dim i As Integer 
       
     buflen = 256 
     buf = Space$(buflen - 1) 
     buflen = GetClassName(window_hwnd, buf, buflen) 
     buf = Left$(buf, buflen) '取得子窗口的类名 
      
     If Right(buf, 4) = "Edit" Then '判断是否为地址栏子窗口 
      GetZiWin = GetWinText(window_hwnd) 
      Exit Function 
     End If 
       
     num_children = 0 
     child_hwnd = GetWindow(window_hwnd, GW_CHILD) '取得第 1 个子窗口的句柄 
     Do While child_hwnd <> 0 '如果有子窗口 
      num_children = num_children + 1 
      ReDim Preserve children(1 To num_children) 
      children(num_children) = child_hwnd 
      child_hwnd = GetWindow(child_hwnd, GW_HWNDNEXT) '取得下一个兄弟窗口的句柄 
     Loop 
       
     For i = 1 To num_children 
      Call GetZiWin(children(i)) 
     Next i 
    End Function Public Function GetWinText(window_hwnd As Long) As String '取得子窗口的值 
    Dim txtlen As Long 
    Dim txt As String  '通过 SendMessage 发送 WM_GETTEXT 取得 IE 地址栏的值 
     GetWinText = "" 
     If window_hwnd = 0 Then Exit Function 
       
     txtlen = SendMessage(window_hwnd, WM_GETTEXTLENGTH, 0, 0) 
     If txtlen = 0 Then Exit Function 
       
     txtlen = txtlen + 1 
     txt = Space$(txtlen) 
     txtlen = SendMessage(window_hwnd, WM_GETTEXT, txtlen, ByVal txt) 
     GetWinText = Left$(txt, txtlen) 
      
     Form1.List1.AddItem GetWinText 
    End Function   相信大家看了上面的代码应该知道取得"任意窗口值"的原理,本程序在 VB6.0、Windows 98 下运行良好。
      

  2.   

    if exist (select * from addrTbl where addr in [IE地址内容]) 
    begin
    --todo:something
    end
      

  3.   

    用类似下面的方法:
    recordset.open "select * from 表 where 网址 like '%内容%'",connectionstring
    if recordset.eof=true then 
     msgbox "无"
    end if
      

  4.   

    to : rise139() 数据库的查询方法用sql 语句查询就可以呀!!select * from 表 where 网址 like '%内容%
      

  5.   

    两种方法,一种是通过ShellWindows来实现,首先在工程中引用Microsoft Internet Controls:Dim dWinFolder As New ShellWindowsPrivate Sub Command4_Click()
        Dim objIE As Object
        Dim objDoc As Object
        
        On Error Resume Next    For Each objIE In dWinFolder
            List1.AddItem objIE.Document.Title
            List2.AddItem objIE.LocationURL
            Set objIEMain = objIE
        Next
    End Sub上面的代码可以在List2中列出当前所有浏览器的地址,如果看到符合的,调用objIE.Quit就可以关闭了,只要定时执行就可以实现监控了。
      

  6.   

    另外就是通过插件来实现,参考:
    http://www.csdn.net/develop/read_article.asp?id=6351
    这种方法是实时监控的,更专业一些。