版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第16章 VB网络游Internet和网络编程开发互联网在现代信息社会中起到越来越重要的作用。Visual Basic在应用程序开发中完全考虑到网络的发展,赋予程序强劲支持网络的功能。学习本章,读者可以掌握网络编程中3个重要网络传输控件Internet Transfer、网页浏览控件WebBrowser和电子邮件控件MAPI的使用方法,熟悉网络上传、下载、登录网站、收发电子邮件的开发技巧。16.1 传输网络文件随着网络的日益普及网络传输扮演着非常重要的角色。网络传输控件Internet Transfer允许连接到其他计算机和传输文件。网络传输包括两个协议:HTTP协议(HyperText Tr
2、ansfer Protocol,超文本传送协议),通过网络使网络浏览器与网络服务器相互连接通信;FTP协议( Protocol,文件传输协议),支持网络互传文件。本节分别介绍两种不同协议的编程方法。16.1.1 检索网页Internet Transfer控件支持超文本传输协议(HTTP)。使用HTTP协议,可以连接全球信息网(World Wide Web)服务器,以检索HTML文档。Internet Transfer控件不是Visual Basic程序中的内置控件,必须手动添加到工具箱。选择“工程”|“部件”命令,弹出“部件”对话框。选择“控件”选项卡中的“Microsoft Internet
3、 Transfer Control 6.0”复选框,单击“确定”按钮,如图16.1所示。图16.1 添加部件窗体Internet Transfer控件包含以下重要属性、方法、事件。1Protocol属性Protocol属性设置或返回一个值,指定和Execute方法一起使用的协议。标准语法如下:object.Protocol = integer参数说明:Object为必须项,表示对象表达式。Integer为必须项,为整数,数值表达式决定所用的协议,包括如表16.1所示的设置值。表16.1 protocol属性设置值超文本传输协议设置protocol属性为icHTTP。常 数值描 述icUnkno
4、wn0未知的icDefault1默认协议icFTP2FTP。文件传输协议icReserved3为将来预留icHTTP4HTTP。超文本传输协议icHTTPS5安全HTTP2StillExecuting属性该属性返回一个值,指明此Internet Transfer控件是否处于忙碌状态。如果该控件正在Internet网上检索文件操作,将返回True。当该控件处于忙碌状态,不响应其他数据请求。标准语法如下:object.StillExecuting = Boolean3StateChanged事件Internet Transfer控件连接中状态发生改变引发该事件。标准语法如下:object_Stat
5、eChanged(ByVal State As Integer)参数说明:State参数包括如表16.2所示参数值。表16.2 state参数值该参数中最重要的是icError参数和icResponseCompleted参数。icError参数表明控件发生错误。icResponseCompleted参数表明控件连接网络服务器已经完成,而且收到所有数据。常 数值描 述icNone0无状态可报告icHostResolvingHost1该控件正在查询所指定的主机的IP地址icHostResolved2该控件已成功地找到所指定的主机的IP地址icConnecting3该控件正在与主机连接icConne
6、cted4该控件已与主机连接成功icRequesting5该控件正在向主机发送数据icRequestSent6该控件发送数据已成功icReceivingResponse7该控件正在接收主机的响应icResponseReceived8该控件已成功地接收到主机的响应icDisconnecting9该控件正在解除与主机的连接icDisconnected10该控件已成功地与主机解除了连接icError11与主机通信时出现了错误icResponseCompleted12该数据传输已经完成,并且所有数据均已接收到4GetChunk方法从StateChanged事件中检索数据。把Execute方法当作GET
7、操作来调用之后使用该方法。在StateChanged事件中使用GetChunk方法。当State属性为icResponseCompleted时,使用GetChunk方法检索缓冲区的内容。标准语法如下:object.GetChunk( size ,dataType )5Execute方法该方法执行对远程服务器的数据传输。只能发送对特定的协议有效的数据。标准语法:object.Execute url, operation, data, requestHeadersUrl参数为必需项,用于指定控件将要连接的网络地址。Operation参数为字符串,用户指定将要执行的操作类型。它所支持的操作的列表如表
8、16.3所示。表16.3 opertion设置值(HTTP协议)Execute方法是非常重要的操作方法。可以通过网络发送和接收文件等多种操作。操 作说 明GET检索由URL属性指定的URL中的数据HEAD发送数据的标头POST传递数据给服务器。该数据在data参数中。这是GET的替代方法,附加的指令在data参数中指定PUTPut操作。被替代的页面名在data参数中【示例16-1】 使用Internet Transfer控件检索网页。本节将使用Internet Transfer控件创建一个检索的网页并返回网页文本内容的窗体。实现过程如下:(1)新建一个工程,并新建一个窗体。(2)双击工具箱中的
9、Inet图标,在窗体中心添加一个网络传输控件Inet1,使用默认属性。(3)双击工具箱中的TextBox图标,自动在窗体中心添加一个文本框控件Text1,Text属性为,其他属性使用默认值。(4)双击工具箱中的CommandButton图标,在窗体中心添加一个CommandButton控件,设置其Caption属性为“检索数据”,再添加一个文本框控件。(5)双击空白窗体,弹出代码编辑窗口,输入以下代码:说明:该示例当单击“检索数据”按钮,执行Execute()方法使用get参数检索网络地址中数据,判断Inet控件的状态,如果stillexecuting参数为True,使用Doevents语句继
10、续等待程序结束。在StateChanged事件中用GetChunk()方法来检索每块数据,最后显示到文本框内。该示例使用Select Case语句来决定如何处理每种可能的状态。(6)按下F5键运行程序。运行窗体如图16.2所示。图16.2 示例16-1的运行结果16.1.2 传输文件Internet Transfer控件同样支持文件传输协议(FTP)。使用FTP协议可以跨平台在FTP服务器上登录,可以下载和上传数据文件。FTP协议使用方法与DOS命令非常相似。Internet Transfer控件传输文件时主要使用Execute方法。该方法执行对远程服务器的数据传输。只能发送对特定的协议有效的
11、数据。标准语法如下:object.Execute url, operation, data, requestHeadersurl参数为必需项,用于指定控件将要连接的网络地址。Operation参数为字符串,用户指定将要执行的操作类型。它所支持的操作的列表如表16.4所示。表16.4 operation设置值Execute()方法是非常重要的操作方法。可以通过网络创建目录、复制、删除文件等多种操作。操 作说 明CD file1改变目录。改变到file1中指定的目录CDUP改变到父目录。等效于CDCLOSE关闭当前的FTP连接DELETE file1删除file1中指定的文件DIR file1目录
12、。搜索file1中指定的目录(允许用通配符,但要使用远程主机的语法)。如果没有指定file1,将返回当前的整个工作目录。使用GetChunk()方法返回目录数据GET file1 file2检索file1中指定的远程文件,并创建file2中指定的新本地文件LS file1列表。搜索file1中指定的目录(允许用通配符,但要使用远程主机的语法)。使用GetChunk()方法返回文件目录数据MKDIR file1创建目录。创建file1中指定的目录。创建是否成功取决于用户在远程主机上的权限PUT file1 file2复制file1指定的本地文件到file2指定的远程主机上PWD打印工作目录。返回
13、当前目录名。使用GetChunk()方法返回数据QUIT终止当前用户RECV file1 file2检索file1中指定的远程文件,并创建file2中指定的本地新文件。等效于 GETRENAME file1 file2将file1中命名的远程文件重命名为file2中指定的新名称。成功与否取决于在远程主机上的权限RMDIR file1删除目录。删除file1中指定的远程目录。成功与否取决于用户在远程主机上的权限SEND file1 file2复制file1指定的本地文件到file2指定的远程主机上。等效于 PUTSIZE file1返回file1指定的目录的大小【示例16-2】 使用Intern
14、et Transfer控件传输指定网页的文件到指定路径。实现方法如下:(1)新建一个工程,并新建一个窗体。(2)双击工具箱中的Inet图标,自动在窗体中心添加一个网络传输控件Inet1,其他属性使用默认值。(3)双击工具箱中的CommandButton图标,自动在窗体中心添加一个CommandButton控件,设置Caption属性为“传输文件”。(4)双击空白窗体,弹出代码编辑窗口,输入以下代码:说明:该代码指定userName和password属性内容,打开Microsoft公司ftp站点,使用Execute()方法get参数传输test.txt文件到c盘。(5)按下F5键运行程序。运行窗
15、体如图16.3所示。图16.3 示例16-2的运行结果该实例只是一个演示程序,如果真正需要登录到指定网站,必须拥有登录该网站的用户名和密码。16.2 应用程序显示网页开发人员在使用Visual Basic开发应用程序时,可能需要将Internet浏览功能添加到标准程序中。用户只需要单击一个链接,可以自动在程序中浏览网页内容。通过WebBrowser控件可以非常容易地实现该功能。WebBrowser控件不是Visual Basic中内置控件,必须手动添加到工具箱。选择“工程”|“部件”命令,弹出“添加部件”窗体。选择“Microsoft Internet Controls”复选框,如图16.4所
16、示。图16.4 添加WebBrowser控件窗体16.2.1 创建浏览器WebBrowser控件Windows系统默认安装Internet Explorer时已经安装WebBrowser控件。在Visual Basic应用程序中,浏览网页非常简单。WebBrowser控件包含以下几个重要属性和事件。1Busy属性该属性返回Boolean数值。如果浏览器在与网络服务器通信时,该数值为True。如果空闲该数值为False。在应用程序中可以在Timer控件中判断Busy属性。如果为False,可以更新或下载网页内容。2Stop属性该属性类似Internet Explorer中的stop图标。如果网页
17、通信状况不好,需要长时间来显示内容,可以使用该属性停止显示网页。3Navigate方法WebBrowser控件中最重要的方法,用于打开指定的网页。标准语法如下:object.navigate url参数说明:url为必需项,表示指定打开网页地址内容。【示例16-3】 使用Navigate方法打开网页地址。代码如下:WebBrowser1.navigate 说明:该代码打开网站首页。16.2.2 登录浏览器除了16.2.1节使用WebBrowser登录网页外,还可以编程实现从应用程序中登录网络浏览器。用户只要熟悉内置浏览器的操作方法可以自由地操作网页。从应用程序中登录浏览器需要URL的定义Uni
18、form Resource Location统一资源定位器,又被称为Internet快捷方式。Internet快捷方式指向固定的网站,格式类似普通文本文件。文件结构如下:InternetShortcuturl=用户可以在应用程序中动态创建该文件。【示例16-4】 从应用程序中打开浏览器。代码如下:Dim n Integernfile = FreeFileOpen App.Path & skyrising.url For Output As #nfilePrint #nfile, InternetShortcutPrint #nfile, url=Close #nfile说明:以上代码在程序目录
19、下创建一个名为skyrising.url的快捷方式,网站链接至百度网站,即网站首页。在应用程序中调用该快捷方式使用Windows API函数ShellExecute()(有关API函数的使用请参见第17章访问API和OLE控件)。该API函数的简单语法如下:Length = ShellExecute(hwnd, Open, appurl, , , vbNormalFocus)该函数返回一个整数。如果length为小于0或大于32的整数。显示已经执行调用程序。【示例16-5】 应用程序登录浏览器。本节将使用Windows API函数ShellExecute()函数来打开一个skyrising.u
20、rl的快捷方式。(1)新建一个工程,并新建一个窗体。(2)双击工具箱中的CommandButton图标,自动在窗体中心添加一个CommandButton控件,设置其Caption属性为“登录网站”。(3)添加模块,输入以下声明代码。(4)双击空白窗体,弹出代码编辑窗口,输入以下代码:(4)按下F5键运行程序。单击“登录网站”按钮,自动调用内置浏览器如图16.5所示。图16.5 示例16-5的运行结果16.3 电子邮件编程电子邮件已经成为现代社会不可缺少的信息联系方式。Visual Basic应用程序开发中提供了对电子邮件开发的MAPI控件。消息处理应用程序接口(Messaging Applic
21、ation Programming Interface,简称MAPI)控件可用于创建具有电子邮件功能的Visual Basic应用程序。在Visual Basic中,MAPI控件可用于与Windows内置的消息系统进行交互。如果使用该控件,必须安装适应MAPI的电子邮件系统,如Microsoft Exchange或者Microsoft Outlook。MAPI控件在运行时是不可见的。MAPI控件不是Visual Basic中内置控件,必须手动添加。选择“工程”|“部件”命令,弹出“部件”对话框。选择“控件”选项卡中的“Microsoft MAPI Controls 6.0”复选框,单击“确定”
22、按钮,如图16.6所示。工具箱中自动添加两个控件:MAPIsession和MAPImessages控件。图16.6 添加部件窗体16.3.1 访问邮箱使用MAPI控件操作电子邮件要建立Visual Basic与电子邮件系统之间的链接。建立链接需要使用MAPIsession控件。MAPIsession控件包含以下重要属性和方法。1UserName和Password属性用来向基本的消息系统提供合法的用户名和密码。可以在设计时设置这些属性,也可以在运行时提示用户输入。2LoginUI属性需要向用户提供基本的电子邮件系统登录对话框时,将LoginUI属性设置为True。如果不存在这样的对话框,则忽略该
23、属性。3NewSession属性指定是否需要建立新的电子邮件会话。如果已经建立了合法的会话,通过设置NewSession属性可使两个会话并发运行。4DownloadMail属性指定在当前会话开始时,是否自动下载该用户的电子邮件。该值设置为True,可以把该用户所有电子邮件下载到收件箱。根据不同的电子邮件系统速度和电子邮件数量,该操作有可能是很耗时的操作。通过将该属性设置为False,用户可以选择是否等到以后再下载电子邮件,或者设置自动下载电子邮件的时间间隔。5SignOn和SignOff方法设置了UserName和Password属性后,可以在运行时使用SignOn方法启动MAPI会话。【示例
24、16-6】 使用SignOn启动MAPI会话。mapiSession.SignOn说明:会话建立后,该会话的句柄被保存在SessionID属性中。根据NewSession属性的值,该会话句柄可能指向新创建的会话,也可能指向已经存在的会话。【示例16-7】 使用SignOff终止MAPI会话。Mapisession.Signoff6SessionID属性使用SignOn方法成功地建立了消息处理会话后,SessionID属性将返回一个唯一的消息处理会话句柄。SessionID的值可被MAPIMessages控件用来创建与合法消息处理会话的关联。按照默认规定,该值为0。16.3.2 收发电子邮件使用
25、MAPISession控件在消息处理会话中建立与邮件服务器的链接后,可以使用MAPIMessages控件接收、发送或阅读收件箱中的消息。MAPIMessages控件提供了完成基本电子邮件任务的属性和方法。这些基本任务有:收邮件、发送邮件、附加文件。1关联SessionID属性MAPIMessages控件的SessionID属性包含了MAPISession控件的SessionID属性返回的消息处理会话句柄。要使MAPIMessages控件与有效的消息处理会话相关联,需要将该属性设置为成功登录的MAPISession控件的SessionID。mpmMessage.SessionID = mpsSe
26、ssion.SessionID2管理电子邮件登录到电子邮件服务器后,可以访问和管理注册用户的电子邮件。注册用户由MAPISession控件的UserName和Password属性指定。电子邮件信箱保存所有邮件,包括已收和未收邮件。管理电子邮件是MAPIMessages控件的最基本的功能。编写、发送、接收和删除电子邮件等操作。表16.5列出了应用于电子邮件的MAPIMessages()方法。表16.5 MAPIMessages控件方法3编写电子邮件使用Compose()方法可以创建新电子邮件。使用Compose()方法后,编写缓冲区被清空,并且MsgIndex属性被设置为1。mapiMessag
27、e.Compose编写电子邮件包括:收件人地址、邮件主题以及内容。(1)收件人地址设置收件人的姓名和地址,可使用RecipDisplayName和RecipAddress属性。其中,RecipDisplayName是收件人的有效姓名,如天空飞翔。RecipAddress属性包含了收件人的电子邮件地址。【示例16-8】 设置收件人姓名和地址。代码如下:mpmMessage.RecipDisplayName = 天空飞翔mpmMessage.RecipAddress = (2)邮件主题和文本MsgSubject属性指定了消息的主题。包括Null字符在内,在主题中最多可以输入64个字符。邮件文本信息包含在MsgNoteText属性中。【示例16-9】 设置邮件主题和文本。代码如下:mpmMessage.MsgSubject = 关于具体问题回复mpmMessage.MsgNoteText = 问题已经解决4发送电子邮件发送电子邮件可使用Send方法。Send方法在发送消息过程中允许与用户进行交互。该值设置为True,将显示基本的电子邮件系统(如Microsoft Exchange)的编写邮件对话框。其设置为False,则在发送消息过程中,不显示撰写消息
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论