| 网站首页 | JAVA文章 | AppServers | Web开发 | 应用开发 | 资源下载 | 论坛
    想学好编程,学好外语很重要  [enadd  2006年12月25日]        
设为首页 加入收藏 联系站长
您现在的位置: 编程笔记网 >> 应用开发 >> vb >> Internet >> 文章正文
用VB自动关闭网页广告窗口            【字体:
用VB自动关闭网页广告窗口
作者:-    文章来源:-    点击数:    更新时间:2006-9-8

   经常上网冲浪的人,在打开网页的时候经常遇到同时弹出多个广告窗口的情况,不但影响视线,还会影响网速。如果用鼠标一个个关闭,实在很麻烦。我经过观察分析,找到了解决的办法,可以让你的屏幕从此清爽起来。

     网页广告分析:

    1.弹出的广告窗口
    
    网页中弹出的广告窗口都是用JS或VBS编写的脚本程序,每个广告窗口都有自已的URL地址,只要获取所有的IE窗口的URL地址,再把其中的广告窗口的URL地址记录下来保存到文本文件中,并且关闭这个窗口,就达到了自动关闭广告的目的。
    2.Flash广告窗口
    
    有些广告是FLASH动画,只要获得窗口句柄,关闭类名为“MacromediaFlashPlayerActiveX”的FLASH播放控件,就可以关闭这些FLASH广告了。
        编程原理:通过设置定时器定时搜索,根据IE的程序名判断是否有IE窗口打开,如发现再进一步判断打开的IE的URL的地址是否与记录在列表框中的一致,如相同就关闭它。由于不涉及窗口的类名,无论是IE的各个版本都可以使用。至于网页中的FLASH则是通过“FindWindowEx”函数来一层层的查找打开网页窗口的“MacromediaFlashPlayerActiveX”类名(IE窗口的各个类名是通过工具软件“SPY++”可以获得),并返回窗口句柄,再用“SendMessage”消息函数发送消息关Flash广告窗口。

    程序设计:

    新建一个工程,添加一个窗体和控件。
    1.建立一个用来控制图标在系统托盘的模块“Module1”,相关代码见后文下载地址。
    2.程序主窗口的部分代码如下:
    Private Sub cmdRightOne_Click()'向黑名单列表中添加网址,cmdLeftOne的代码与此雷同,详见程序源代码
      On Error Resume Next
      Dim i As Integer
      If lstAll.ListCount = 0 Then Exit Sub
      If lstAll.Text = "" Then Exit Sub
      lstSelected.AddItem lstAll.Text
      i = lstAll.ListIndex
      lstAll.RemoveItem lstAll.ListIndex
      If lstAll.ListCount > 0 Then
        If i > lstAll.ListCount - 1 Then
          lstAll.ListIndex = i - 1
        Else
          lstAll.ListIndex = i
        End If
      End If
      lstSelected.ListIndex = lstSelected.NewIndex
    End Sub

    Private Sub closeflash()'关闭flash动画
    On Error GoTo callerrora
    Dim sclassname As String
    Dim windowhandle As Long
    Dim lhwnd As Long
    Dim a As Long
    lhwnd = 0
    sclassname = ("IEFrame")
    lhwnd = FindWindowEx(lhwnd, 0, sclassname, vbNullString)
    sclassname = ("Shell DocObject View")
    lhwnd = FindWindowEx(lhwnd, 0, sclassname, vbNullString)
    sclassname = ("Internet Explorer_server")
    lhwnd = FindWindowEx(lhwnd, 0, sclassname, vbNullString)
    sclassname = ("MacromediaFlashPlayerActiveX")
    lhwnd = FindWindowEx(lhwnd, 0, sclassname, vbNullString)
    windowhandle = lhwnd
    If windowhandle <> 0 Then
    a = SendMessage(windowhandle, WM_CLOSE, 0, 0)
    End If
    Exit Sub
    callerrora:
    MsgBox Err.Description
    Err.Clear
    End Sub

[1] [2] 下一页  

文章录入:enadd    责任编辑:enadd 
  • 上一篇文章:

  • 下一篇文章:
  • 发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
    最新热点 最新推荐 相关文章
  • 用VB编写DirectX7.0游戏(下…

  • 用VB编写DirectX7.0游戏(上…

  • 使用OLE DB和ADO调用返回记录…

  • 使用VB调用Oracle程序包内的…

  • VB中用ADO对象动态创建数据库…

  • fffff

  • 如何用MSComm Control传Bina…

  • MultiLink的WinSock Server程…

  • 用VB制作浏览器

  • 用VB编写网络寻呼机

  •   网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)
    | 设为首页 | 加入收藏 | 联系站长 | 友情链接 | 版权申明 | 管理登录 |