网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > Visual Basic
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
网络编程:ASP教程,ASP.NET教程,PHP教程,JSP教程,C#教程,数据库,XML教程,Ajax,Java,Perl,Shell,VB教程,Delphi,C/C++教程,软件工程,J2EE/J2ME,移动开发
本月文章推荐
.如何访问文本文件(2)----用Micro.
.比较两个文件.
.利用VB进行多媒体程序设计初步.
.快速定位上次VisualBasic程序修改.
.VB中实现带预览的对话框.
.如何在Windows操作系统中改变文件.
.从头开始删除集合项目.
.VBCOM基础讲座之创建第一个COM对.
.VB调用C程序动态链接库的方法.
.用VB实现图像切换效果.
.变量名称变成了保留字.
.用VisualBasic6.0实现电影特效.
.VB从零开始编外挂(十二).
.VB的显示/隐藏Start按钮.
.满屏播放AVI文件.
.利用VB6.0开发基于IIS的应用程序.
.VB中使用数据窗体设计器插件.
.除法运算符\与/的区别.
.如何取得计算机的所有字型.
.DataGrid控件的使用四.

VisualBasic程序中如何启动默认的拨号连接

发表日期:2006-2-27


随着因特网的迅猛发展,现在编程常需要在程序中直接联网来处理一些事项,如在线注册和在线帮助,这就要求我们要在程序中建立某些连接。很多软件在不知用户是否联网的情况下不管三七二十一就启动浏览器查找网址,费了九牛二虎之力只能查出一错误页来(当然不可能有什么好的结果)。如果我们在程序编写时能自动判断用户是否已经联网,如已经联网则打开联接,如没有则启动默认的拨号连接,这样是不是让人觉得你的软件更胜人一处呢?判断是否已联网很多地方都有介绍,这里我们只介绍如何启动默认的拨号连接。

----在介绍之前让我们首先看看如何打开拨号网络。由于拨号网络不是一个可执行文件,所以不能用“Shell可执行文件”的方式来打开。要启动拨号网络,需借助Explorer,方法如下:

Shell"Explorer::{20D04FE0-3AEA-1069-A2D8-08002B30309D}\"&"::{992CFFA0-F557-101A-88EC-00DD010CCC48}",vbNormalFocus

----但若是要启动拨号网络中的某一个连接,则需借助rundll.exe及rnaui.dll来启动,方法如下(假定连接名称为163):

Shell"rundllrnaui.dll,RnaDial163",vbNormalFocus

----说明:在以上叙述中,“,RnaDial163”这部分不要插入额外的空格,大小写也不要任意更改。

----上面仅仅假定了连接名称,但实际编程中我们是不知道其名称的,如何取得默认的连接名称并启动它呢?这里我们可利用注册表来达到目的。完整程序如下:

----在窗体上放置一个命令按钮(名称为cmdCallConnect),下面为代码部份:

OptionExplicit

'有关注册的API声明
PrivateDeclareFunctionRegOpenKeyExLib"advapi32"Alias"RegOpenKeyExA"(ByValhKeyAsLong,ByVallpSubKeyAsString,ByValulOptionsAsLong,ByValsamDesiredAsLong,phkResultAsLong)AsLong

PrivateDeclareFunctionRegQueryValueExLib"advapi32"Alias"RegQueryValueExA"(ByValhKeyAsLong,ByVallpValueNameAsString,ByVallpReservedAsLong,ByReflpTypeAsLong,ByValszDataAsString,ByReflpcbDataAsLong)AsLong

PrivateDeclareFunctionRegCloseKeyLib"advapi32"(ByValhKeyAsLong)AsLong
'常数
ConstHKEY_CURRENT_USER=&H80000001
ConstERROR_SUCCESS=0&

PrivateSubcmdCallConnect_Click()
'启动默认拨号连接
Shell"rundllrnaui.dll,RnaDial" GetConnect,vbNormalFocus
EndSub

PublicFunctionGetConnect()AsString
DimhKeyAsLong
DimSubKeyAsString
hKey=HKEY_CURRENT_USER'主键
SubKey="RemoteAccess"'子键
'取得默认连接名
GetConnect=GetRegValue(hKey,SubKey,"Default")
EndFunction

PublicFunctionGetRegValue(hKeyAsLong,lpszSubKeyAsString,szKeyAsString)AsVariant
OnErrorGoToErrorRoutineErr:
DimphkResultAsLong
DimlResultAsLong
DimszBufferAsString
DimlBuffSizeAsLong

'创建缓冲区
szBuffer=Space(255)
lBuffSize=Len(szBuffer)

'打开注册键
RegOpenKeyExhKey,lpszSubKey,0,1,phkResult

'查询结果
lResult=RegQueryValueEx(phkResult,szKey,0,0,szBuffer,lBuffSize)

'关闭注册键
RegCloseKeyphkResult

'返回结果
IflResult=ERROR_SUCCESSThen
GetRegValue=Left(szBuffer,lBuffSize-1)
Else
GetRegValue=""
EndIf
ExitFunction

ErrorRoutineErr:
GetRegValue=""
EndFunction
以上程序在WIN98,VB6.0下调试通过。->

上一篇:在Windows操作系统中改变文件打开方式 人气:3590
下一篇:VisualBasic开发应用程序如何使用INI文件 人气:3149
浏览全部Visual Basic的内容 Dreamweaver插件下载 网页广告代码 祝你圣诞节快乐 2009年新年快乐