文章分类 | 推荐文章 | 最新文章 | 热点文章 | 最新软件 | 精品软件 | 下载排行 | 推荐下载 | 免费看大片 | WPS | 杀毒软件
清风网络
首 页 软件下载 网络学院 数码学院
QQ 电脑入门 游戏 操作系统 图形处理 办公软件 媒体动画 精文荟萃 工具软件 网络编程 程序开发 网络技术 认证考试 网站建设 文章专栏
当前位置:清风网络学院网络编程数据库用VB.NET来做个性化浏览器
精品推荐
特别推荐
·SQL数据库完全使用手册
·进阶:精妙SQL语句介绍
·sql删除记录
·学习SQL语句之SQL语句大全
·数据备份失败的五个原因及解决办法
·解决SQL Server常见的七个经典问题
·SQL存储过程的概念,创建,调用,管理,删除,优点
·带你轻松接触13个数据库术语
·如何恢复系统数据库如何恢复系统数据库?
·通过实例讲解由浅入深学会存储过程
·学会三个范式快速成为数据库设计的高手
·SQL数据库应聘人员面试时经常被问的问题
·问答:查询分析器不能单步调试的的原因
·数据库基础知识:SQL中的IIF语句详解
·WindowsXP+IIS+PHP5+MySQL5+Zend+GD库+phpMyAdmin+PHPWind 5.3 安装教程
·你知道吗?优化数据库前的十大问题
·自动备份注意事项让你远离误删数据噩梦
·关于MSSQL数据库日志满的快速解决办法
·SQL安全设置攻略
·SQL注入的不常见方法
热点TOP10
·用独立的DLL来存储图片(资源文件)
·编程实例 WebGroupBox(Aspx控件)
·数据结构(C#)_排序算法(冒泡排序)
·详细介绍Oracle数据库的启动和关闭
·在DataTable中查询应该注意的问题
·从数据库来管理个人网站安全
·sqlldr加载数据到不同表的问题
·DB中查询Table占用空间的大小
·使用重定向恢复DB2数据库
·浅谈DB2数据库故障处理及最佳实践
·T-SQL语句实现数据库备份与还原
·数据库性能优化JOIN方法说明
·Apache+php+mysql安装与配置详解
·如何在DB2里面更新执行计划
·关于IBM DB2 数据库的使用小技巧小结
·轻松掌握清空数据库的好方法
·使用 “--”作为数据库注释起始标记
·数据备份失败的五个原因及解决办法
·轻松掌握学习数据库的常用函数的用法
·数据库初学者:掌握数据操纵语言命令

用VB.NET来做个性化浏览器

日期:2007年3月8日 作者:清风网络学院 查看:[大字体 中字体 小字体]


VB.NET和C#一样也没有只属于自己的类库,他们使用的类库都是.Net FrameWork SDK,在此类库中封装许多类,VB.NET就是通过这些类来突破自身语言的限制,实现很多强大功能的。其实对于.Net的编程语言来说,使用VB.NET来编写程序或者使用C#编程已经没有像以前使用VB和C++之间,有那么大的区别了,因为一般来说只要用C#能够实现的功能,同样用VB.NET也可以实现,有时使用VB.NET还显得更为方便。

虽然.Net FrameWork SDK的内容十分丰富,功能也十分强大,但有些功能使用此类库来实现就显得有点麻烦,因为在Windows里面拥有许多COM组件,充分利用这些已经存在的资源,对于快速开发程序就显得非常重要了。本文就来介绍一下,VB.NET使用COM组件来做一个属于自己的浏览器。

一. VB.NET和COM组件:

写到这里有一个概念要澄清一下,就是VB.NET和C#一样,不能直接使用已经存在的COM组件,这是因为编译VB.NET和C#的文件的时候,必须保证编译时候所使用的文件是由受管代码(Managed Code)文件,我们知道VB.NET和C#所使用的.Net FrameWork SDK都是受管代码,而对于那些COM组件来说,他们都是非受管代码(Unmanaged Code),所以这些COM组件要能够被VB.NET和C#使用,必须实现自身从非受管代码到受管代码的转换。好在,在.Net框架中提供了一个程序来专门实现这种转换,这个文件就是"Aximp.exe",如果你把.Net FrameWork SDK安装在"C"盘,那么在"C:\Program Files\Microsoft.NET\FrameworkSDK\Bin"目录中,就可以找到这个文件。

二. COM组件的转换:

在本文中所使用的COM组件的名称是微软的Web浏览器,如果你选用的操作系统是2000,并且安装的路径是"C:\Winnt",那么这个组件可以在"C:\Winnt\System32"目录中找到;如果你选用的操作系统是98,并且安装的路径是"C:\Windows",那么这个组件可以在"C:\Windows\System"目录中找到,这个COM组件的名称为"shdocvw.dll"。"Aximp.exe"是一个功能比较强大的程序,你可以通过"Aximp /?"命令,来了解他的一些其他的常规使用方法,由于在本文中只是最为简单的使用方法,所以使用下列简单的命令就可成功转换:

Aximp c:\winnt\system32\shdocvw.dll


运行上述命令后就可以实现转换,并在当前目录中产生"SHDocVw.dll"和"AxSHDocVw.dll"二个文件。具体如下图:



图01:COM组件的转换过程

在成功转换过以后,就要利用转换后的这二个文件,用VB.NET来做一个属于自己的浏览器。

三. 本文程序设计和运行的软件环境:

(1).微软公司视窗2000服务器版

(2)..Net FrameWork SDK Beta 2

四. 程序设计的思路以及关键步骤的解决方法:

(1).在VB.NET中使用浏览器组件:

在转换而成的"AxSHDocVw.dll"和"SHDocVw.dll"中定义了命名空间"AxSHDocVw",在此命名空间中封装了一个"AxWebBrowser"组件,这个组件中有若干个方法和属性,VB.NET就是通过这些方法和属性来实现浏览器的一些基本功能的。使用此浏览器组件和使用其他的WinForm组件的过程是一样的,首先要导入命名空间,然后在程序中继承此命名空间中定义的浏览器组件,最后设定这个继承后的组件的属性和方法。具体如下:

< I > .导入命名空间,具体代码如下:

Imports AxSHDocVw


< II > . 继承此命名空间中定义的浏览器组件,具体代码如下:

Friend WithEvents AxWebBrowser1 As AxSHDocVw.AxWebBrowser


(2).VB.NET实现浏览器的一些基本功能:

要用VB.NET做一个属于自己的浏览器的,就必须掌握用VB.NET是如何实现浏览器的一些基本功能的,我们所讲的浏览器的基本功能其实也就是浏览器工具栏上的那些功能按钮,譬如:前进、后退、主页、停止等,其中浏览器中最为重要,也是比较难实现的,就是如何在给定网址后,通过"转到"按钮,浏览指定的网页,下面就来具体介绍一下。

< I > .浏览指定网页:

在下列的代码中我们是通过TextBox1文本框组件来放置指定的网址的,"Button1"按钮组件就是定义的"转到"按钮,下列就是用VB.NET实现浏览指定网页的程序代码:

  Private Sub Button1_Click ( ByVal sender As System.Object , ByVal e As System.EventArgs ) Handles Button1.Click
Dim nullObject As System.Object = 0
    Dim str As String = ""
    Dim nullObjStr As System.Object = str
    Cursor.Current = Cursors.WaitCursor
    AxWebBrowser1.Navigate ( TextBox1.Text , nullObject , nullObjStr , nullObjStr , nullObjStr )
    Cursor.Current = Cursors.Default
  End Sub
< II > .VB.NET实现浏览器的基本功能:

在本文的程序中,我们也是仿照IE浏览器的大致式样,同样设定了一个工具栏(ToolBar1),并且在工具栏中放置了一些按钮(ToolBarButton1至ToolBarButton5),通过这些按钮来实现浏览器的前进、后退等基本功能,下列是实现这些功能的代码:

  Private Sub ToolBar1_ButtonClick ( ByVal sender As System.Object , ByVal e As ToolBarButtonClickEventArgs ) Handles ToolBar1.ButtonClick
    '实现浏览器中的"后退"功能
If e.Button Is ToolBarButton1 Then
      AxWebBrowser1.GoBack ( )
    End If
    '实现浏览器中的"前进"功能
    If e.Button Is ToolBarButton2 Then
      AxWebBrowser1.GoForward ( )
    End If
    '实现浏览器中的"主页"功能
    If e.Button Is ToolBarButton3 Then
      AxWebBrowser1.GoHome ( )
    End If
    '实现浏览器中的"刷新"功能
    If e.Button Is ToolBarButton4 Then
      AxWebBrowser1.Refresh ( )
    End If
    '实现浏览器中的"停止"功能
    If e.Button Is ToolBarButton5 Then
      AxWebBrowser1.Stop ( )
    End If
End Sub  


< III > .其实掌握了上面的这些知识,一个基本的浏览器的框架大致也就出来了,但由于浏览器页面大小是经常变化,如果你不设定窗体中的组件是跟随窗体大小变化而随之变化的话,这个做出来浏览器也就显得不那么专业,所以下面这些画龙点睛的代码也是不可缺少的。下面代码的作用是使得浏览界面上的组件随着窗体的变化而变化,即窗体中按钮和文本框等要随着窗体的变化而变化。

'定位"地址"文本框组件与窗体的下、左、右边框保持一致
    TextBox1.Anchor = ( ( ( AnchorStyles.Top Or AnchorStyles.Bottom ) _
          Or AnchorStyles.Left ) _
          Or AnchorStyles.Right ) '定位"转到"按钮组件与窗体的上、右边框保持一致
    Button1.Anchor = ( AnchorStyles.Top Or AnchorStyles.Right )
'定位"浏览器"组件与窗体的上、下、左、右边框保持一致
    AxWebBrowser1.Anchor = ( ( ( AnchorStyles.Top Or AnchorStyles.Bottom ) _
          Or AnchorStyles.Left ) _
          Or AnchorStyles.Right )  


五. 用VB.NET做浏览器的源程序代码(IE.vb):

在了解了上面的这些要点后,可以得到用VB.NET做浏览器的完整代码,具体如下:

   Imports System
Imports System.Drawing
Imports System.Collections
Imports System.ComponentModel
Imports System.Windows.Forms
Imports AxSHDocVw
'导入程序中使用到的命名空间
Public Class Form1
  Inherits Form
  Public Sub New ( )
    MyBase.New ( )
'初始化窗体中的各个组件
    InitializeComponent ( )
  End Sub
  '清除程序中使用的各种资源
  Protected Overloads Overrides Sub Dispose ( ByVal disposing As Boolean )
    If disposing Then
      If Not ( components Is Nothing ) Then
        components.Dispose ( )
      End If
    End If
    MyBase.Dispose ( disposing )
  End Sub
  Friend WithEvents ToolBar1 As ToolBar
  Friend WithEvents ToolBarButton1 As ToolBarButton
  Friend WithEvents ToolBarButton2 As ToolBarButton
  Friend WithEvents ToolBarButton3 As ToolBarButton
  Friend WithEvents ToolBarButton4 As ToolBarButton
  Friend WithEvents ToolBarButton5 As ToolBarButton
  Friend WithEvents Label1 As Label
  Friend WithEvents TextBox1 As TextBox
  Friend WithEvents Button1 As Button
  Friend WithEvents AxWebBrowser1 As AxSHDocVw.AxWebBrowser

  Private components As System.ComponentModel.Container
  Private Sub InitializeComponent ( )
    TextBox1 = New TextBox ( )
    ToolBarButton1 = New ToolBarButton ( )
    ToolBarButton2 = New ToolBarButton ( )
    ToolBarButton3 = New ToolBarButton ( )
    ToolBarButton4 = New ToolBarButton ( )
    ToolBarButton5 = New ToolBarButton ( )
    Label1 = New Label ( )
    ToolBar1 = New ToolBar ( )
    Button1 = New Button ( )
    AxWebBrowser1 = New AxSHDocVw.AxWebBrowser ( )
    CType ( AxWebBrowser1 , System.ComponentModel.ISupportInitialize ).BeginInit ( )
    SuspendLayout ( )
'定位"地址"文本框组件与窗体的下、左、右边框保持一致
    TextBox1.Anchor = ( ( ( AnchorStyles.Top Or AnchorStyles.Bottom ) _
          Or AnchorStyles.Left ) _
          Or AnchorStyles.Right )
    TextBox1.Location = New Point ( 48 , 40 )
    TextBox1.Name = "TextBox1"
    TextBox1.Size = New Size ( 296 , 21 )
    TextBox1.TabIndex = 2
    TextBox1.Text = ""
    ToolBarButton1.Text = "向后"
    ToolBarButton3.Text = "主页"
    ToolBarButton2.Text = "向前"
ToolBarButton4.Text = "刷新"
    ToolBarButton5.Text = "停止"

Label1.Location = New Point ( 8 , 48 )
    Label1.Name = "Label1"
    Label1.Size = New Size ( 48 , 23 )
    Label1.TabIndex = 1
    Label1.Text = "地址:"
'以下是在工具栏中加入按钮
ToolBar1.Buttons.Add ( ToolBarButton1 )
ToolBar1.Buttons.Add ( ToolBarButton2 )
ToolBar1.Buttons.Add ( ToolBarButton3 )
ToolBar1.Buttons.Add ( ToolBarButton4 )
ToolBar1.Buttons.Add ( ToolBarButton5 )
    ToolBar1.DropDownArrows = True
    ToolBar1.Name = "ToolBar1"
    ToolBar1.ShowToolTips = True
    ToolBar1.Size = New Size ( 400 , 38 )
    ToolBar1.TabIndex = 0
'定位"转到"按钮组件与窗体的上、右边框保持一致
    Button1.Anchor = ( AnchorStyles.Top Or AnchorStyles.Right )
    Button1.Location = New Point ( 352 , 40 )
    Button1.Name = "Button1"
    Button1.Size = New Size ( 40 , 23 )
    Button1.TabIndex = 3
    Button1.Text = "转到"
'定位"浏览器"组件与窗体的上、下、左、右边框保持一致
    AxWebBrowser1.Anchor = ( ( ( AnchorStyles.Top Or AnchorStyles.Bottom ) _
          Or AnchorStyles.Left ) _
          Or AnchorStyles.Right )
    AxWebBrowser1.Enabled = True
    AxWebBrowser1.Location = New Point ( 0 , 64 )
    AxWebBrowser1.Size = New Size ( 400 , 240 )
    AxWebBrowser1.TabIndex = 4
    Me.AutoScaleBaseSize = New Size ( 6 , 14 )
    Me.ClientSize = New Size ( 400 , 301 )
'在窗体上加入组件
Me.Controls.Add ( AxWebBrowser1 )
Me.Controls.Add ( Button1 )
Me.Controls.Add ( TextBox1 )
Me.Controls.Add ( Label1 )
Me.Controls.Add ( ToolBar1 )
Me.Name = "Form1"
    Me.Text = "VB.NET做个性化浏览器"
    CType ( Me.AxWebBrowser1 , System.ComponentModel.ISupportInitialize ).EndInit ( )
    Me.ResumeLayout ( False )
  End Sub
  '实现浏览器的功能
  Private Sub ToolBar1_ButtonClick ( ByVal sender As System.Object , ByVal e As ToolBarButtonClickEventArgs ) Handles ToolBar1.ButtonClick
    '实现浏览器中的"后退"功能
If e.Button Is ToolBarButton1 Then
      AxWebBrowser1.GoBack ( )
    End If
    '实现浏览器中的"前进"功能
    If e.Button Is ToolBarButton2 Then
      AxWebBrowser1.GoForward ( )
    End If
    '实现浏览器中的"主页"功能
    If e.Button Is ToolBarButton3 Then
      AxWebBrowser1.GoHome ( )
    End If
    '实现浏览器中的"刷新"功能
    If e.Button Is ToolBarButton4 Then
      AxWebBrowser1.Refresh ( )
    End If
    '实现浏览器中的"停止"功能
    If e.Button Is ToolBarButton5 Then
      AxWebBrowser1.Stop ( )
    End If
  End Sub
  '实现"转到"按钮功能
  Private Sub Button1_Click ( ByVal sender As System.Object , ByVal e As System.EventArgs ) Handles Button1.Click
Dim nullObject As System.Object = 0
    Dim str As String = ""
    Dim nullObjStr As System.Object = str
    Cursor.Current = Cursors.WaitCursor
    AxWebBrowser1.Navigate ( TextBox1.Text , nullObject , nullObjStr , nullObjStr , nullObjStr )
    Cursor.Current = Cursors.Default
  End Sub
End Class
Module Module1
Sub Main ( )
 Application.Run ( new Form1 ( ) )
End sub
End Module  


六. 编译命令和运行界面:

在经过如下命令编译后,就可以得到可以自己的浏览器了

vbc /t:winexe /r:AxSHDocVw.dll /r:SHDocVw.dll /r:system.dll /r:system.windows.forms.dll /r:system.drawing.dll ie.cs


下图是此程序运行的界面:



图02:用VB.NET做成的浏览器的运行界面

七. Visual Stduio .Net的实现方法:

随着Visual Stduio .Net的正式版的推出,很多程序员都已经开始使用。其实用Visual Stduio .Net来实现上面的这些步骤,就显得非常的容易,因为上面的很多步骤,在Visual Stduio .Net中都被掩盖了起来,也就是说很多步骤都让Visual Stduio .Net给你在不知不觉中做出来了。譬如COM组件的转换,在你选择新建了一个项目后,按动工具栏,点击右键,选择"自定义工具栏",具体如下:



图03:自定义工具栏的操作界面

就可以得到下面界面:



图04:在Visual Stdio .Net中使用COM组件

选择"Microsoft Web 浏览器",你就会发现在Windows窗体的工具栏上面多了一个新的组件,这个组件就是Visual Stdio .Net给你转换好的可以在VB.NET中使用的浏览器组件。此时你就可以在新建的窗体上面加入此组件,这时Visual Stdio .Net就给你完成了COM组件的转换,并且也为你创建一个浏览器的组件。此时就可以根据上文中介绍的要点来实现浏览器的一些基本功能,具体的实现方法和上面的完全一样,这里就不详细介绍了。

八. 总结:

用VB.NET做浏览器的过程其实也就是用VB.NET进行COM组件编程的过程,在本文中,按照COM组件的转换,COM组件的使用的步骤一步步的说明。虽然随着Visual Sduio .Net正式版的推出,我们在以后的编程中使用的平台更多的倾向于他,但由于Visual Sduio .Net在实际的操作过程中掩盖了许多的底层的操作,这其实对我们更深入的掌握.Net程序开发是不利的,这也就是本文为什么一开始没有直接从Visual Sduio .Net编程开始。其实对一个高手来说,.Net方面的编程,用什么工具都是次要的,关键是要掌握其中的来龙去脉,你说对么?

关于作者

马金虎(笔名:王天),武汉大学计算机系毕业,现就职于滁州供电局信息中心,微软2001-2002年度MVP。爱好做一些计算机相关的研究,发表过许多计算机相关文章。您可以通过QQ:23895859同作者联系。

(出处:清风网络学院






上一篇:Visual C#的SQL Server编程

下一篇:VB.NET的数据库基础编程(1)

用VB.NET来做个性化浏览器 相关文章:
·IE7.0浏览器有用的9个使用技巧
·VB打造超酷个性化菜单(六)
·Thooe VS 遨游!两大浏览器之龙虎争霸
·用Excel制作个性化销售记录图表
·文档个性化 Excel 2003页眉页脚的另类设置
·谁在吞吃内存 五大浏览器内存占用测试
·互联网时代 打造“移动”浏览器
·IE7浏览器访问HTTPS网页故障攻略
·菜鸟入门 IE浏览器防黑技巧十则
·常见的IE浏览器错误解决办法
用VB.NET来做个性化浏览器 相关软件:
·CAJ文件浏览器 V5.0
·NetEye浏览器 V1.0.2
·鱼鱼IE加加浏览器 V1.0
·唯优浏览器V2.0.8.1
·万能浏览器V1.75 绿色版
·极速TOP 浏览器V2.9.1.0
·极速浏览器V1.0.0930 简体中文版
·AcooBrowser(阿库浏览器)V1.60 Build 970
·X-浏览器V1.0.0 绿色版
·飞鱼浏览器 V1.81

特别声明:本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作者。文章版权归文章原始作者所有。对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转载的文章有版权问题请联系编辑人员,我们尽快予以更正。
[打印本页] [关闭窗口] 转载请注明来源:http://www.viphot.com
| 帮助(?) | 版权声明 | 友情连接 | 关于我们 | 信息发布
Copyright 2007 www.viphot.com All Rights Reserved. 鄂ICP备05000083号Powered by:viphot