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

2016-02-19 18:50 9 1 收藏

生活已是百般艰难,为何不努力一点。下面图老师就给大家分享VisualBasic程序中如何启动默认的拨号连接,希望可以让热爱学习的朋友们体会到设计的小小的乐趣。

【 tulaoshi.com - 编程语言 】

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

----在介绍之前让我们首先看看如何打开拨号网络。由于拨号网络不是一个可执行文件,所以不能用“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

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/bianchengyuyan/)

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

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

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

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/bianchengyuyan/)

'关闭注册键
  RegCloseKeyphkResult

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

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

来源:http://www.tulaoshi.com/n/20160219/1619194.html

延伸阅读
可用性设计 任何应用程序的可用性基本上由用户决定。界面设计是需多次反复的过程;在为应用程序设计界面时,第一步就设计出非常完美的界面的情况非常少见。用户参与设计过程越早,花的气力越少,创建的界面越好、越可用。 什么是好的界面 设计用户界面时,开始时最好是先看看Microsoft或其他公司的一些卖得很好的应用程...
win7如何创建拨号连接?   一、打开控制面板,选择网络和共享中心; 二、在网络和共享中心中选择设置新的连接或网络; 三、选择连接到IntuLaoShi.comternet; 四、选择仍要设置新的连接; 五、选择宽带PPPoE ; 六、输入对应的宽带帐号及密码,点击连接即可; 七、创建桌面快捷方式。 ...
要想控制拨号网络,就要使用RemoteAccessService(RAS)API,这个API最早是在WindowsforWorkgroup3.11中出现的,现在它已经成为Win32API的一个组成部分。挂断拨号网络的函数叫RasHangUp,这个函数的功能和用法都很简单,它只有一个参数,就是要挂断的拨号网络连接的句柄。我们可以利用RasEnumConnections获得当前系统所有RAS连接(通常我们的系统...
第一步:在电脑桌面找到网上邻居,鼠标右键点击,在显示下拉栏里选择属性。 第二步:在显示的网络连接的左侧双击创建一个新的连接。 第三步:显示新建连接向导,我们直接点击下一步。 第四步:显示网络连接类型,在这里选择自己所需要的...
标签: 电脑入门
1、按Windows+R键输入Msconfig。 2、选择引导选项卡,然后点击需要设置为默认启动项的一项,然后点击下面的设为默认值,确定重启主机即可。 Windows 8是微软于北京时间2012年10月25日23点15分推出的最新Windows系列系统。Windows 8支持个人电脑(X86构架)及平板电脑(X86构架或ARM构架)。Windows 8大幅改变以往的操作逻辑,提供更佳的屏...

经验教程

213

收藏

8
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部