C#.NET獲取撥號(hào)連接的寬帶連接方法
本文實(shí)例講述了C#.NET獲取撥號(hào)連接的寬帶連接方法。分享給大家供大家參考。具體如下:
該代碼直接可以用,我在XP VS2010 NET3.5上測(cè)試通過(guò)。
首先是ASDL的封裝
class SinASDL { //ASDL在注冊(cè)表中的存放位置,這個(gè)是針對(duì)WinXP的, //不知道Win7是否是這個(gè),待驗(yàn)證 private static String _adlskeys = @"RemoteAccess\Profile"; public static String adlskeys { get { return _adlskeys; } } /// <summary> /// 獲取本機(jī)的撥號(hào)名稱,也就是本機(jī)上所有的撥號(hào) /// </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> /// 實(shí)例化一個(gè)ASDL連接 /// </summary> /// <param name="asdlname">ASDL名稱,如“寬帶連接”</param> /// <param name="username">用戶名</param> /// <param name="password">密碼</param> /// <param name="windowstyle">窗口顯示方式,默認(rèn)為因此撥號(hào)過(guò)程</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> /// 撥號(hào)名稱 /// </summary> public String ASDLName { get { return this._asdlname; } set { this._asdlname = value; } } /// <summary> /// 撥號(hào)進(jìn)程的窗口方式 /// </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> /// 開(kāi)始撥號(hào) /// </summary> /// <returns>返回?fù)芴?hào)進(jìn)程的返回值</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; } }
下面是使用測(cè)試:
//SinASDL asdl = new SinASDL("寬帶連接", "08793312221", "123456"); //寬帶連接 //使用枚舉到的第一個(gè)進(jìn)行撥號(hào) SinASDL asdl = new SinASDL(SinASDL.GetASDLNames()[0], "08793312221", "123456", System.Diagnostics.ProcessWindowStyle.Normal); if (asdl.Connect() == 0) { MessageBox.Show("Success"); } else { MessageBox.Show("Fail"); }
我自己測(cè)試的時(shí)候是通過(guò)的。
如果電腦上不止一個(gè)撥號(hào)的,那么你可以用SinASDL.GetASDLNames()進(jìn)行枚舉。
希望本文所述對(duì)大家的C#程序設(shè)計(jì)有所幫助。
相關(guān)文章
C#中使用Join與GroupJoin將兩個(gè)集合進(jìn)行關(guān)聯(lián)與分組
這篇文章主要介紹了C#中使用Join與GroupJoin將兩個(gè)集合進(jìn)行關(guān)聯(lián)與分組,文中分別對(duì)Join和GroupJoin的用法進(jìn)行詳細(xì)說(shuō)明,需要的朋友可以參考下2017-12-12C#利用iTextSharp組件給PDF文檔添加圖片/文字水印
這篇文章主要給大家介紹了關(guān)于如何C#利用iTextSharp組件給PDF文檔添加圖片/文字水印的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-10-10.Net Winform開(kāi)發(fā)筆記(四)透過(guò)現(xiàn)象看本質(zhì)
本文將從Winform應(yīng)用程序中的Program.cs文件的第一行代碼開(kāi)始逐步分析一個(gè)Winform應(yīng)用程序到底是怎樣從出生走向死亡2013-01-01深入學(xué)習(xí)C#網(wǎng)絡(luò)編程之HTTP應(yīng)用編程(上)
這篇文章主要介紹了如何學(xué)習(xí)C#網(wǎng)絡(luò)編程之HTTP應(yīng)用編程的相關(guān)知識(shí),文中講解的非常細(xì)致,代碼幫助大家更好的理解和學(xué)習(xí),感興趣的朋友可以了解下2020-06-06C# winForm實(shí)現(xiàn)的氣泡提示窗口功能示例
這篇文章主要介紹了C# winForm實(shí)現(xiàn)的氣泡提示窗口功能,涉及C# winForm窗口屬性與設(shè)置相關(guān)操作技巧,需要的朋友可以參考下2018-03-03