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#程序设计有所帮助。