日本免费精品_最新日韩一区_亚洲视频一区在线_a在线视频观看_天天射夜夜骑_粉嫩av一区二区三区_欧美中日韩免费视频_综合图区欧美_国内精品美女在线观看_午夜精品久久久久久久男人的天堂

首頁 > 編程 > C# > 正文

使用C#實現(xiàn)ADSL自動撥號

2023-05-12 12:29:39
字體:
供稿:網(wǎng)友

在網(wǎng)絡(luò)編程中,有時候會需要重新?lián)芴柦⒕W(wǎng)絡(luò)連接(如Ad點擊軟件通過重新?lián)芴栃纬捎行c擊) ,下面介紹兩種程序中撥號的方法.

1、最簡單的方法:使用RasDialming令

RasDial是Windows自帶的ming令,使用非常簡單。實際使用是可將下面代碼保存為一個批處理文件,然后直接運行或在程序里進行調(diào)用。

rasdial.exe /disconnect '斷開連接

del "C:/Documents and Settings/hyuqin/Cookies/*.*" /Q '清除Cookie

rasdial.exe 連接名 連接賬戶 連接密碼 '重新?lián)芴?/p>

2、封裝為類,靈活調(diào)用

上面提到的方法雖然很簡單,但并非標(biāo)準(zhǔn)的實現(xiàn)方法,使用時會受到一些限制,此時最好的辦法就是將實現(xiàn)代碼封裝為類庫。下面這個類庫是網(wǎng)上一位朋友提供的,直接調(diào)用就行.

using System;
        using System.Runtime.InteropServices;

        public struct RASCONN
        {
                public int dwSize;
                public IntPtr hrasconn;
                [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 257)]
                public string szEntryName;
                [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 17)]
                public string szDeviceType;
                [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 129)]
                public string szDeviceName;
        }

        [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Auto)]
        public struct RasStats
        {
                public int dwSize;
                public int dwBytesXmited;
                public int dwBytesRcved;
                public int dwFramesXmited;
                public int dwFramesRcved;
                public int dwCrcErr;
                public int dwTimeoutErr;
                public int dwAlignmentErr;
                public int dwHardwareOverrunErr;
                public int dwFramingErr;
                public int dwBufferOverrunErr;
                public int dwCompressionRatioIn;
                public int dwCompressionRatioOut;
                public int dwBps;
                public int dwConnectionDuration;
        }

        [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Auto)]
        public struct RasEntryName
        {
                public int dwSize;
                //[MarshalAs(UnmanagedType.ByValTStr,SizeConst=(int)RasFieldSizeConstants.RAS_MaxEntryName + 1)] 
                public string szEntryName;
                //#if WINVER5
                // public int dwFlags;
                // [MarshalAs(UnmanagedType.ByValTStr,SizeConst=260+1)]
                // public string szPhonebookPath;
                //#endif
        }
        public class RAS
        {
                [DllImport("Rasapi32.dll", EntryPoint = "RasEnumConnectionsA",SetLastError = true)]

                internal static extern int RasEnumConnections
                (
                ref RASCONN lprasconn, // buffer to receive connections data 
                ref int lpcb, // size in bytes of buffer 
                ref int lpcConnections // number of connections written to buffer );


                [DllImport("rasapi32.dll" , CharSet = CharSet.Auto)]
                internal static extern uint RasGetConnectionStatistics(
                IntPtr hRasConn, // handle to the connection
                [In, Out]RasStats lpStatistics // buffer to receive statistics
                );
                [DllImport("rasapi32.dll", CharSet = CharSet.Auto)]
                public extern static uint RasHangUp(
                        IntPtr hrasconn // handle to the RAS connection to hang up );

                [DllImport("rasapi32.dll", CharSet = CharSet.Auto)]
                public extern static uint RasEnumEntries(
                string reserved, // reserved, must be NULL
                string lpszPhonebook, // pointer to full path and
                // file name of phone-book file [In, Out]RasEntryName[] lprasentryname, // buffer to receive
                // phone-book entries
                ref int lpcb, // size in bytes of buffer 
                out int lpcEntries // number of entries written
                // to buffer 
                );

                [DllImport("wininet.dll", CharSet = CharSet.Auto)]
                public extern static int InternetDial(
                IntPtr hwnd,
                [In]string lpszConnectoid,
                uint dwFlags,
                ref int lpdwConnection,
                uint dwReserved
                );

                public RAS()
                {
                }
        }
        public enum DEL_CACHE_TYPE //要刪除的類型。
        {
                File,//表示internet臨時文件
                Cookie //表示Cookie
        }

        public class RASDisplay
        {
                [DllImport("wininet.dll", CharSet = CharSet.Auto)]
                public static extern bool DeleteUrlCacheEntry(
                DEL_CACHE_TYPE type
                );
                private string m_duration;
                private string m_ConnectionName;
                private string[] m_ConnectionNames;
                private double m_TX;
                private double m_RX;
                private bool m_connected;
                private IntPtr m_ConnectedRasHandle;

                RasStats status = new RasStats();
                public RASDisplay()
                {
                        m_connected = true;
                        RAS lpras = new RAS();
                        RASCONN lprasConn = new RASCONN();

                        lprasConn.dwSize = Marshal.SizeOf(typeof(RASCONN));
                        lprasConn.hrasconn = IntPtr.Zero;

                        int lpcb = 0;
                        int lpcConnections = 0;
                        int nRet = 0;
                        lpcb = Marshal.SizeOf(typeof(RASCONN));

                        nRet = RAS.RasEnumConnections(ref lprasConn, ref lpcb, ref
                        lpcConnections);

                        if (nRet != 0)
                        {
                                m_connected = false;
                                return;
                        }

                        if (lpcConnections > 0)
                        {
                                //for (int i = 0; i < lpcConnections; i++) 
                                //{

                                names.dwSize = entryNameSize;
                        m_ConnectedRasHandle = lprasConn.hrasconn;
                        RAS.RasGetConnectionStatistics(lprasConn.hrasconn, stats);


                        m_ConnectionName = lprasConn.szEntryName;

                        int Hours = 0;
                        int Minutes = 0;
                        int Seconds = 0;

                        Hours = ((stats.dwConnectionDuration / 1000) / 3600);
                        Minutes = ((stats.dwConnectionDuration / 1000) / 60) - (Hours * 60);
                        Seconds = ((stats.dwConnectionDuration / 1000)) - (Minutes * 60) - (Hours * 3600);


                        m_duration = Hours + " hours " + Minutes + " minutes " + Seconds + " secs";
                        m_TX = stats.dwBytesXmited;
                        m_RX = stats.dwBytesRcved;
                        //}
                }
                else {
                        m_connected = false;
                        }


                        int lpNames = 1;
                int entryNameSize = 0;
                int lpSize = 0;
                RasEntryName[] names = null;

                entryNameSize = Marshal.SizeOf(typeof(RasEntryName));
                lpSize = lpNames * entryNameSize;

                names = new RasEntryName[lpNames];
                names[0].dwSize = entryNameSize;

                uint retval = RAS.RasEnumEntries(null, null, names, ref lpSize, out lpNames);

                //if we have more than one connection, we need to do it again 
                if (lpNames > 1)
                {
                        names = new RasEntryName[lpNames];
                        for (int i = 0; i < names.Length; i++)
                        {
                                names.dwSize = entryNameSize;
                        }

                        retval = RAS.RasEnumEntries(null, null, names, ref lpSize, out lpNames);

                }
                m_ConnectionNames = new string[names.Length];


                if (lpNames > 0)
                {
                        for (int i = 0; i < names.Length; i++)
                        {
                                m_ConnectionNames = names.szEntryName;
                        }
                }
        }

        public string Duration
        {
                get
                {
                        return m_connected ? m_duration : "";
                }
        }

        public string[] Connections
        {
                get
                {
                        return m_ConnectionNames;
                }
        }

        public double BytesTransmitted
        {
                get
                {
                        return m_connected ? m_TX : 0;
                }
        }
        public double BytesReceived
        {
                get
                {
                        return m_connected ? m_RX : 0;
                }
        }
        public string ConnectionName
        {
                get
                {
                        return m_connected ? m_ConnectionName : "";
                }
        }
        public bool IsConnected
        {
                get
                {
                        return m_connected;
                }
        }

        public int Connect(string Connection)
        {
                int temp = 0;
                uint INTERNET_AUTO_DIAL_UNATTENDED = 2;
                int retVal = RAS.InternetDial(IntPtr.Zero, Connection, INTERNET_AUTO_DIAL_UNATTENDED, ref temp, 0);
                return retVal;
        }
        public void Disconnect()
        {
                RAS.RasHangUp(m_ConnectedRasHandle);
        }
}

調(diào)用方法:

RASDisplay ras = new RASDisplay();
ras.Disconnect(); //斷開連接
ras.Connect("ADSL"); //重新?lián)芴?/p>

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
欧美日韩国产一二三| 欧美在线日韩精品| 一级片免费在线播放| 欧美三级网址| 亚洲福利视频在线| 91麻豆精品国产91久久久使用方法 | 福利在线国产| 欧美高清视频一区二区三区| 欧美日韩在线不卡一区| 日韩精品高清不卡| 91精品电影| 欧美日韩在线看| 久久婷婷国产| 国产高清精品二区| 日韩在线高清| 91精品视频播放| 国产v日产∨综合v精品视频| 午夜精品一区二区三区免费视频| 在线亚洲免费| 91欧美在线视频| 中文字幕国产视频| 精品国产1区2区3区| 欧美一级在线观看| 中文字幕亚洲视频| 日韩欧美在线1卡| 精品久久人人做人人爽| √天堂资源中文www| 日韩精品在线视频观看| 日韩不卡一二区| 中文字幕精品www乱入免费视频| 在线黄色国产电影| 一级片在线播放| 亚洲电影中文字幕在线观看| 亚洲一区在线观看网站| 国产裸体歌舞团一区二区 | 在线免费视频一区二区| 欧美不卡视频一区| 在线手机中文字幕| 国产欧美日韩中文久久| 91av久久久| 欧美不卡一区二区| 交视频在线观看国产| 精品播放一区二区| 91精品在线观看国产| 日韩欧美一级二级三级久久久| 69堂精品视频在线播放| 欧美日韩国产一级片| 国产欧美三级| 91精品蜜臀在线一区尤物| 日韩三级视频在线播放| 国内精品99| 日韩国产亚洲欧美| 中文字幕日韩第一页| 你懂的亚洲视频| 亚洲第一精品在线| 亚洲乱码视频| 亚洲福利在线视频| 国产导航在线| 你懂的亚洲视频| 久久精品免费在线观看| 91精品国产91久久久久久不卡 | 搞黄在线观看| 国产在线黄色| 欧美激情一区二区在线| 91精品国产91久久久久久青草| av午夜在线| 中文字幕国产欧美| 欧美一卡2卡三卡4卡5免费| 日韩免费精品| 欧美va亚洲va日韩∨a综合色| 国产视频2区| 国产黄色片大全| 国产伦精品免费视频| 欧美一级在线观看| 91精品国产91| 精品中文字幕在线| 中文字幕日韩国产| 精品一二三四| www.eeuss影院| 日韩欧美一级精品久久| 国产一二三精品| 日韩亚洲欧美中文高清在线| 日韩中文在线字幕| 快she精品国产999| 国产一区日韩欧美| 一区二区中文视频| 欧美中文字幕视频在线观看 | 国产精品一区二区三区免费观看| 国产欧美日韩精品高清二区综合区 | 亚洲制服丝袜一区| 99pao成人国产永久免费视频| 被陌生人带去卫生间啪到腿软| 中文字幕国产亚洲| 日韩国产高清一区| 香蕉视频亚洲一级| 欧美日韩一级黄| 欧美日韩在线视频首页| 亚洲高清在线免费| 日韩欧美高清在线| 久久手机免费观看| 国产视频一区三区| 日韩欧美中文字幕一区| 一区二区91| 亚洲福利精品| 国产福利精品导航| 欧美日韩国产观看视频| 欧美久久久久久蜜桃| 91麻豆精品国产91久久久使用方法 | 国产一级久久久| 日韩欧美国产三级| 午夜成人鲁丝片午夜精品| 国产亚洲一区字幕| 日韩在线一区二区| 日韩一级二级三级| 日韩中文字幕91| 国产永久免费高清在线观看| 日本中文字幕在线观看| 国产亚洲人成a一在线v站| 99精品人妻国产毛片| 91精品国产免费| 国产成人精品三级| 黄色资源在线观看| 欧美日韩成人综合| 国产裸体歌舞团一区二区| 亚洲天堂国产视频| 黄色视屏免费在线观看| 日韩中文字幕视频在线观看| 中文字幕日韩高清| 国产成人精品日本亚洲专区61| 麻豆精品99| 久久精品国产2020观看福利| 国产成人一区二区精品非洲| aaa大片在线观看| 精品色蜜蜜精品视频在线观看| 日韩欧美在线字幕| 日韩一级在线免费观看| 国产亚洲视频中文字幕视频| 一级一片免费视频| 欧美日韩国产在线播放| 婷婷综合福利| 69免费视频| 国内不卡的二区三区中文字幕| 精品国产1区二区| 91精品网站| 中文字幕在线视频网| 精品久久蜜桃| 日韩精品视频中文在线观看| 欧美日韩国产第一页| 不卡视频一区二区| 国产日韩三级| 麻豆精品视频入口| 国产日韩av一区二区| 国产成人精品免费在线| 中文字幕国产亚洲| 国产欧美日韩不卡| 国产不卡一区| 国产激情99| 国产成人一二三区| 欧美三级免费观看| 欧美日韩综合高清一区二区| 日韩高清在线一区二区| 激情五月综合| 色综合天天综合网天天狠天天| 国产激情在线视频| 国产在线拍偷自揄拍精品| 91精品国产手机| 精品日韩欧美| 1区2区在线| 91精品国产日韩91久久久久久| 日韩欧美专区在线| 欧美日韩中文另类| 视频一区二区国产| 在线观看一区日韩| 蜜桃精品视频| 亚洲羞羞网站| 欧美wwww| 亚洲v中文字幕| 成年人黄国产| 中文字幕精品在线| 日韩欧美在线网址| 色猫猫国产区一区二在线视频| 国产午夜精品视频| 中文国产字幕在线观看| 精品国自产在线观看| 亚洲欧美韩国综合色| 日韩国产91| 亚洲国产欧美久久| 日韩av一区在线| 欧美日韩国产观看视频| 国产欧美久久久久久久久| 国产在线小视频| 日韩精品视频免费看| 日本不卡免费高清视频| 午夜国产福利一区二区| 中文天堂资源在线| 亚洲欧美日本另类| 国产区日韩欧美| 亚洲一区在线观看网站| 日韩在线不卡一区| 91最新在线| 亚洲制服丝袜一区| 国产婷婷色一区二区三区在线| 欧美不卡一区二区| 国产欧美一级| 福利一区二区| 欧美日韩综合高清一区二区| 国产欧美日韩综合| 欧美一级一级性生活免费录像| 欧美日韩精品区| 久久精品欧美日韩精品| 欧美1234区| 精品久久九九| 在线国产1区| 一级网站免费观看| 国产三级做爰在线观看| 国产婷婷一区二区| 日韩精品在线视频| 91精品蜜臀在线一区尤物| 黄色精品在线观看| 精品亚洲成a人片在线观看| 欧美日韩亚州综合| 在线日韩精品视频| 91精品国产99| 亚洲尤物av| 一区在线播放视频| 欧美 日韩 国产 在线观看| 久久视频www| 日韩精品久久久| 欧美激情一区二区三区在线| 内射国产内射夫妻免费频道| 日韩视频精品在线| 国产一级片播放| 日韩高清不卡一区| 国产裸体歌舞团一区二区| 91精品在线看V| 91精品久久久久久久久久| eeuss一区| www中文字幕| 在线视频国内一区二区| 中文字幕在线视频第一页| 日韩免费视频一区二区视频在线观看 | 亚洲一区精品在线| 婷婷中文字幕在线观看| 国产精久久久久| 高清国产一区| 精品久久久久久无| 国产黄在线观看| 中文字幕日韩欧美在线| 天天综合天天综合| 国产欧美日韩视频在线| 欧美日韩亚州综合| 91国内精品在线视频| 日韩中文在线字幕| 91精品视频免费在线观看| 亚洲黄色www| 一区三区二区视频| 日韩av二区| 精品久久久久久无| 国产欧美日韩在线视频| av免费网站在线观看| 香蕉精品久久| 日韩免费视频一区二区| 91精品国产欧美日韩| 日韩精品手机在线| 亚洲综合在线视频| 久久91精品久久久久久秒播| 国产黄色在线网站| 国产欧美日韩综合精品| 日韩av在线中文字幕| 日韩三级高清在线| 欧美专区中文字幕| 日韩国产亚洲欧美| 精品国产乱码久久久久久牛牛| www.中文字幕在线| 1区2区在线| 中文欧美日韩| 日韩国产一区三区| 91久久在线| 国产黄在线播放| 国产成人综合精品| 日韩视频在线免费看| 精品视频www| 精品日韩在线| 亚洲最大黄色| 免费高清特黄a大片| www.狠狠干| 久久人人精品| 欧美日韩国产专区| 免费视频国产一区| 国产永久在线观看| 中文字幕第一页在线| aa国产成人| 91精品在线看V| 国产婷婷色一区二区三区 | 亚洲高清视频一区| 国产欧美日产一区| 日韩精品在线看| 久久久精品国产99久久精品芒果| √新版天堂资源在线资源| 亚洲福利一区| 1区2区在线| av中文在线资源| 精品国产乱码久久久久久蜜臀| 欧美日韩高清在线| 日本а中文在线天堂| 亚洲免费在线观看av| 不卡av免费在线| 国产裸舞福利在线视频合集| 国产成人综合精品| 亚洲专区一二三| 91精品国产调教在线观看| 亚洲一级在线| 精品播放一区二区| 国产一区久久久| 极品久久久久久| 色综合天天性综合| 欧美日韩尤物久久| 精品一二三区视频| 日韩av综合在线观看| 欧美亚洲另类制服自拍| 在线精品视频免费播放| 亚洲 欧美综合在线网络| 国产日韩精品在线观看| 日韩亚洲欧美中文字幕| 成人xxxx| 日韩精品在线观看视频| 欧美另类久久久品| 日韩欧美在线网址| 成人ww免费完整版在线观看| 九九九精品视频| 精品视频资源站| 国产黄色小视频| 91精品视频观看| 欧美三级视频在线| 国产羞羞视频在线播放| 一区二区欧美国产| 日韩中文首页| 深夜日韩欧美| 国产在成人精品线拍偷自揄拍| 搞黄在线观看| 亚洲3区在线| 国产嫩草影院久久久久| 91精品国产综合久久蜜臀| 日韩欧美在线综合| 国精品产品一区| 欧美日韩中文字幕日韩欧美| 日韩中文字幕网| 国产字幕在线看| 国产视频二区| av午夜在线| 中文字幕久久av| 第一页在线观看| 在线不卡一区二区| 一区二区日韩av| 中文字幕五月天| 中文字幕亚洲视频| 亚洲深夜福利| 国产网站av| 欧美 日韩 国产在线| 国产视频一二区| 国产日产一区二区三区 | 欧美日韩国产大片| 一区免费视频| 中文字幕在线观看欧美| 午夜国产在线| 亚洲三级国产| 日韩精品免费观看视频| 亚洲欧洲三级| 91精品国产入口| 中文精品电影| 亚洲一区激情| 亚洲综合在线小说| 欧美中文字幕在线| 日韩欧美在线网址| 欧美日韩高清在线| 国产黄色精品| 国产在线一在线二| 日本a级黄色| 日韩精品在线观看视频| 99精品在线播放| 日韩在线视频观看正片免费网站| 国产三级中文字幕| 国精品产品一区| 国产欧美日韩亚州综合| 中文字幕日韩高清| 精品欧美日韩精品| 黄色一区二区在线| 日韩中文字幕在线观看视频| 91精品国产手机| 国产网站av| 欧美一级免费看| 亚洲三级网站| 欧美日韩在线三级| 国产在线观看a| 成年人黄国产| 国产成人va亚洲电影| 欧美亚洲另类制服自拍| 国产成人精品网址| 日韩久久精品视频| xxxxx性|