C#.NET获取拨号连接的宽带连接方法
本文实例讲述了C#.NET获取拨号连接的宽带连接方法。分享给大家供大家参考。具体如下:
该代码直接可以用,我在XPVS2010NET3.5上测试通过。
首先是ASDL的封装
classSinASDL
{
//ASDL在注册表中的存放位置,这个是针对WinXP的,
//不知道Win7是否是这个,待验证
privatestaticString_adlskeys=@"RemoteAccess\Profile";
publicstaticStringadlskeys
{
get
{
return_adlskeys;
}
}
///<summary>
///获取本机的拨号名称,也就是本机上所有的拨号
///</summary>
///<returns></returns>
publicstaticString[]GetASDLNames()
{
RegistryKeyRegKey=Registry.CurrentUser.OpenSubKey(adlskeys);
if(RegKey!=null)
returnRegKey.GetSubKeyNames();
else
returnnull;
}
privateString_asdlname=null;
privateProcessWindowStyle_windowstyle=ProcessWindowStyle.Hidden;
///<summary>
///实例化一个ASDL连接
///</summary>
///<paramname="asdlname">ASDL名称,如“宽带连接”</param>
///<paramname="username">用户名</param>
///<paramname="password">密码</param>
///<paramname="windowstyle">窗口显示方式,默认为因此拨号过程</param>
publicSinASDL(Stringasdlname,Stringusername=null,Stringpassword=null,ProcessWindowStylewindowstyle=ProcessWindowStyle.Hidden)
{
this.ASDLName=asdlname;
this.Username=username;
this.Password=password;
this.WindowStyle=windowstyle;
}
///<summary>
///拨号名称
///</summary>
publicStringASDLName
{
get
{
returnthis._asdlname;
}
set
{
this._asdlname=value;
}
}
///<summary>
///拨号进程的窗口方式
///</summary>
publicProcessWindowStyleWindowStyle
{
get
{
returnthis._windowstyle;
}
set
{
this._windowstyle=value;
}
}
privateString_username=null;//用户名
privateString_password=null;//密码
///<summary>
///用户名
///</summary>
publicStringUsername
{
get
{
returnthis._username;
}
set
{
this._username=value;
}
}
///<summary>
///密码
///</summary>
publicStringPassword
{
get
{
returnthis._password;
}
set
{
this._password=value;
}
}
///<summary>
///开始拨号
///</summary>
///<returns>返回拨号进程的返回值</returns>
publicintConnect()
{
Processpro=newProcess();
pro.StartInfo.FileName="rasdial.exe";
pro.StartInfo.Arguments=this.ASDLName+""+this.Username+""+this.Password;
pro.StartInfo.WindowStyle=this.WindowStyle;
pro.Start();
pro.WaitForExit();
returnpro.ExitCode;
}
///<summary>
///端口连接
///</summary>
///<returns></returns>
publicintDisconnect()
{
Processpro=newProcess();
pro.StartInfo.FileName="rasdial.exe";
pro.StartInfo.Arguments=this.ASDLName+"/DISCONNECT";
pro.StartInfo.WindowStyle=this.WindowStyle;
pro.Start();
pro.WaitForExit();
returnpro.ExitCode;
}
}
下面是使用测试:
//SinASDLasdl=newSinASDL("宽带连接","08793312221","123456");
//宽带连接
//使用枚举到的第一个进行拨号
SinASDLasdl=newSinASDL(SinASDL.GetASDLNames()[0],"08793312221","123456",System.Diagnostics.ProcessWindowStyle.Normal);
if(asdl.Connect()==0)
{
MessageBox.Show("Success");
}
else
{
MessageBox.Show("Fail");
}
我自己测试的时候是通过的。
如果电脑上不止一个拨号的,那么你可以用SinASDL.GetASDLNames()进行枚举。
希望本文所述对大家的C#程序设计有所帮助。