C#.NET获取拨号连接的宽带连接方法
程序员文章站
2023-11-29 17:25:10
本文实例讲述了c#.net获取拨号连接的宽带连接方法。分享给大家供大家参考。具体如下:
该代码直接可以用,我在xp vs2010 net3.5上测试通过。
首先是asd...
本文实例讲述了c#.net获取拨号连接的宽带连接方法。分享给大家供大家参考。具体如下:
该代码直接可以用,我在xp vs2010 net3.5上测试通过。
首先是asdl的封装
class sinasdl { //asdl在注册表中的存放位置,这个是针对winxp的, //不知道win7是否是这个,待验证 private static string _adlskeys = @"remoteaccess\profile"; public static string adlskeys { get { return _adlskeys; } } /// <summary> /// 获取本机的拨号名称,也就是本机上所有的拨号 /// </summary> /// <returns></returns> public static string[] getasdlnames() { registrykey regkey = registry.currentuser.opensubkey(adlskeys); if (regkey != null) return regkey.getsubkeynames(); else return null; } private string _asdlname = null; private processwindowstyle _windowstyle = processwindowstyle.hidden; /// <summary> /// 实例化一个asdl连接 /// </summary> /// <param name="asdlname">asdl名称,如“宽带连接”</param> /// <param name="username">用户名</param> /// <param name="password">密码</param> /// <param name="windowstyle">窗口显示方式,默认为因此拨号过程</param> public sinasdl(string asdlname, string username = null, string password = null, processwindowstyle windowstyle = processwindowstyle.hidden) { this.asdlname = asdlname; this.username = username; this.password = password; this.windowstyle = windowstyle; } /// <summary> /// 拨号名称 /// </summary> public string asdlname { get { return this._asdlname; } set { this._asdlname = value; } } /// <summary> /// 拨号进程的窗口方式 /// </summary> public processwindowstyle windowstyle { get { return this._windowstyle; } set { this._windowstyle = value; } } private string _username = null; //用户名 private string _password = null; //密码 /// <summary> /// 用户名 /// </summary> public string username { get { return this._username; } set { this._username = value; } } /// <summary> /// 密码 /// </summary> public string password { get { return this._password; } set { this._password = value; } } /// <summary> /// 开始拨号 /// </summary> /// <returns>返回拨号进程的返回值</returns> public int connect() { process pro = new process(); pro.startinfo.filename = "rasdial.exe"; pro.startinfo.arguments = this.asdlname + " " + this.username + " " + this.password; pro.startinfo.windowstyle = this.windowstyle; pro.start(); pro.waitforexit(); return pro.exitcode; } /// <summary> /// 端口连接 /// </summary> /// <returns></returns> public int disconnect() { process pro = new process(); pro.startinfo.filename = "rasdial.exe"; pro.startinfo.arguments = this.asdlname + " /disconnect"; pro.startinfo.windowstyle = this.windowstyle; pro.start(); pro.waitforexit(); return pro.exitcode; } }
下面是使用测试:
//sinasdl asdl = new sinasdl("宽带连接", "08793312221", "123456"); //宽带连接 //使用枚举到的第一个进行拨号 sinasdl asdl = new sinasdl(sinasdl.getasdlnames()[0], "08793312221", "123456", system.diagnostics.processwindowstyle.normal); if (asdl.connect() == 0) { messagebox.show("success"); } else { messagebox.show("fail"); }
我自己测试的时候是通过的。
如果电脑上不止一个拨号的,那么你可以用sinasdl.getasdlnames()进行枚举。
希望本文所述对大家的c#程序设计有所帮助。
上一篇: xml解析之Jsoup器
推荐阅读
-
Android编程获取网络连接方式及判断手机卡所属运营商的方法
-
PHP获取网页所有连接的方法(附demo源码下载)
-
Android编程实现获取当前连接wifi名字的方法
-
win7系统宽带连接错误815怎么办 Win7系统宽带连接出错提示错误815的七种解决方法
-
Win10系统宽带连接提示错误代码633的原因及解决方法
-
Android编程实现获取当前连接wifi名字的方法
-
win7系统宽带连接错误815怎么办 Win7系统宽带连接出错提示错误815的七种解决方法
-
C#.NET获取拨号连接的宽带连接方法
-
Win10系统宽带连接提示错误代码633的原因及解决方法
-
.NET Core 获取数据库上下文实例的方法和配置连接字符串